📄 unittest.cs
字号:
FreeImage.UnloadEx(ref dib);
}
[Test]
public void FreeImage_Bitmap_information_functions()
{
dib = iManager.GetBitmap(ImageType.Odd, ImageColorType.Type_08_Greyscale_MinIsBlack);
Assert.AreNotEqual(0, dib);
Assert.AreEqual(FREE_IMAGE_TYPE.FIT_BITMAP, FreeImage.GetImageType(dib));
Assert.AreNotEqual(0, FreeImage.GetColorsUsed(dib));
Assert.AreEqual(8, FreeImage.GetBPP(dib));
Assert.AreNotEqual(0, FreeImage.GetWidth(dib));
Assert.AreNotEqual(0, FreeImage.GetHeight(dib));
Assert.AreNotEqual(0, FreeImage.GetLine(dib));
Assert.AreNotEqual(0, FreeImage.GetPitch(dib));
Assert.AreNotEqual(0, FreeImage.GetDIBSize(dib));
Assert.AreNotEqual(IntPtr.Zero, FreeImage.GetPalette(dib));
FreeImage.SetDotsPerMeterX(dib, 1234);
FreeImage.SetDotsPerMeterY(dib, 4321);
Assert.AreEqual(1234, FreeImage.GetDotsPerMeterX(dib));
Assert.AreEqual(4321, FreeImage.GetDotsPerMeterY(dib));
Assert.AreNotEqual(IntPtr.Zero, FreeImage.GetInfoHeader(dib));
Assert.AreNotEqual(IntPtr.Zero, FreeImage.GetInfo(dib));
Assert.AreEqual(FREE_IMAGE_COLOR_TYPE.FIC_MINISBLACK, FreeImage.GetColorType(dib));
Assert.AreEqual(0, FreeImage.GetRedMask(dib));
Assert.AreEqual(0, FreeImage.GetGreenMask(dib));
Assert.AreEqual(0, FreeImage.GetBlueMask(dib));
Assert.AreEqual(0, FreeImage.GetTransparencyCount(dib));
Assert.AreNotEqual(IntPtr.Zero, FreeImage.GetTransparencyTable(dib));
FreeImage.SetTransparent(dib, false);
FreeImage.SetTransparencyTable(dib, new byte[] { });
Assert.IsTrue(FreeImage.IsTransparent(dib));
Assert.IsFalse(FreeImage.HasBackgroundColor(dib));
RGBQUAD rgb = Color.Teal;
Assert.IsTrue(FreeImage.SetBackgroundColor(dib, ref rgb));
Assert.IsTrue(FreeImage.GetBackgroundColor(dib, out rgb));
FreeImage.UnloadEx(ref dib);
}
[Test]
public void FreeImage_GetICCProfile()
{
dib = iManager.GetBitmap(ImageType.Metadata, ImageColorType.Type_01_Dither);
Assert.AreNotEqual(0, dib);
new FIICCPROFILE(dib, new byte[] { 0xFF, 0xAA, 0x00, 0x33 });
FIICCPROFILE p = FreeImage.GetICCProfileEx(dib);
Assert.AreEqual(4, p.Size);
Assert.AreEqual(0xAA, p.Data[1]);
FreeImage.UnloadEx(ref dib);
}
[Test]
public void FreeImage_CreateICCProfile()
{
dib = iManager.GetBitmap(ImageType.Metadata, ImageColorType.Type_01_Dither);
Assert.AreNotEqual(0, dib);
byte[] data = new byte[256];
Assert.AreNotEqual(IntPtr.Zero, FreeImage.CreateICCProfile(dib, data, 256));
FreeImage.UnloadEx(ref dib);
}
[Test]
public void FreeImage_DestroyICCProfile()
{
dib = iManager.GetBitmap(ImageType.Metadata, ImageColorType.Type_01_Dither);
Assert.AreNotEqual(0, dib);
FreeImage.DestroyICCProfile(dib);
FreeImage.UnloadEx(ref dib);
}
[Test]
public void FreeImage_ConvertTo4Bits()
{
dib = iManager.GetBitmap(ImageType.Even, ImageColorType.Type_32);
Assert.AreNotEqual(0, dib);
FIBITMAP temp = FreeImage.ConvertTo4Bits(dib);
Assert.AreNotEqual(0, temp);
Assert.AreEqual(4, FreeImage.GetBPP(temp));
FreeImage.UnloadEx(ref temp);
FreeImage.UnloadEx(ref dib);
}
[Test]
public void FreeImage_ConvertTo8Bits()
{
dib = iManager.GetBitmap(ImageType.Even, ImageColorType.Type_32);
Assert.AreNotEqual(0, dib);
FIBITMAP temp = FreeImage.ConvertTo8Bits(dib);
Assert.AreNotEqual(0, temp);
Assert.AreEqual(8, FreeImage.GetBPP(temp));
FreeImage.UnloadEx(ref temp);
FreeImage.UnloadEx(ref dib);
}
[Test]
public void FreeImage_ConvertToGreyscale()
{
dib = iManager.GetBitmap(ImageType.Even, ImageColorType.Type_32);
Assert.AreNotEqual(0, dib);
FIBITMAP temp = FreeImage.ConvertToGreyscale(dib);
Assert.AreNotEqual(0, temp);
Assert.AreEqual(8, FreeImage.GetBPP(temp));
FreeImage.UnloadEx(ref temp);
FreeImage.UnloadEx(ref dib);
}
[Test]
public void FreeImage_ConvertTo16Bits555()
{
dib = iManager.GetBitmap(ImageType.Even, ImageColorType.Type_32);
Assert.AreNotEqual(0, dib);
FIBITMAP temp = FreeImage.ConvertTo16Bits555(dib);
Assert.AreNotEqual(0, temp);
Assert.AreEqual(16, FreeImage.GetBPP(temp));
FreeImage.UnloadEx(ref temp);
FreeImage.UnloadEx(ref dib);
}
[Test]
public void FreeImage_ConvertTo16Bits565()
{
dib = iManager.GetBitmap(ImageType.Even, ImageColorType.Type_32);
Assert.AreNotEqual(0, dib);
FIBITMAP temp = FreeImage.ConvertTo16Bits565(dib);
Assert.AreNotEqual(0, temp);
Assert.AreEqual(16, FreeImage.GetBPP(temp));
FreeImage.UnloadEx(ref temp);
FreeImage.UnloadEx(ref dib);
}
[Test]
public void FreeImage_ConvertTo24Bits()
{
dib = iManager.GetBitmap(ImageType.Even, ImageColorType.Type_32);
Assert.AreNotEqual(0, dib);
FIBITMAP temp = FreeImage.ConvertTo24Bits(dib);
Assert.AreNotEqual(0, temp);
Assert.AreEqual(24, FreeImage.GetBPP(temp));
FreeImage.UnloadEx(ref temp);
FreeImage.UnloadEx(ref dib);
}
[Test]
public void FreeImage_ConvertTo32Bits()
{
dib = iManager.GetBitmap(ImageType.Even, ImageColorType.Type_24);
Assert.AreNotEqual(0, dib);
FIBITMAP temp = FreeImage.ConvertTo32Bits(dib);
Assert.AreNotEqual(0, temp);
Assert.AreEqual(32, FreeImage.GetBPP(temp));
FreeImage.UnloadEx(ref temp);
FreeImage.UnloadEx(ref dib);
}
[Test]
public void FreeImage_ColorQuantize()
{
dib = iManager.GetBitmap(ImageType.Even, ImageColorType.Type_24);
Assert.AreNotEqual(0, dib);
FIBITMAP temp = FreeImage.ColorQuantize(dib, FREE_IMAGE_QUANTIZE.FIQ_WUQUANT);
Assert.AreNotEqual(0, temp);
Assert.AreEqual(8, FreeImage.GetBPP(temp));
FreeImage.UnloadEx(ref temp);
FreeImage.UnloadEx(ref dib);
}
[Test]
public void FreeImage_ColorQuantizeEx()
{
FIBITMAP paletteDib = iManager.GetBitmap(ImageType.Even, ImageColorType.Type_08);
Assert.IsFalse(paletteDib.IsNull);
Palette palette = FreeImage.GetPaletteEx(paletteDib);
RGBQUAD[] table = palette.Data;
dib = iManager.GetBitmap(ImageType.Even, ImageColorType.Type_24);
Assert.AreNotEqual(0, dib);
FIBITMAP temp = FreeImage.ColorQuantizeEx(dib, FREE_IMAGE_QUANTIZE.FIQ_WUQUANT, (int)palette.Length, (int)palette.Length, table);
Assert.AreNotEqual(0, temp);
Assert.AreEqual(8, FreeImage.GetBPP(temp));
FreeImage.UnloadEx(ref paletteDib);
FreeImage.UnloadEx(ref temp);
FreeImage.UnloadEx(ref dib);
}
[Test]
public void FreeImage_Threshold()
{
dib = iManager.GetBitmap(ImageType.Even, ImageColorType.Type_32);
Assert.AreNotEqual(0, dib);
FIBITMAP temp = FreeImage.Threshold(dib, 128);
Assert.AreNotEqual(0, temp);
Assert.AreEqual(1, FreeImage.GetBPP(temp));
FreeImage.UnloadEx(ref temp);
FreeImage.UnloadEx(ref dib);
}
[Test]
public void FreeImage_Dither()
{
dib = iManager.GetBitmap(ImageType.Even, ImageColorType.Type_32);
Assert.AreNotEqual(0, dib);
FIBITMAP temp = FreeImage.Dither(dib, FREE_IMAGE_DITHER.FID_FS);
Assert.AreNotEqual(0, temp);
Assert.AreEqual(1, FreeImage.GetBPP(temp));
FreeImage.UnloadEx(ref temp);
FreeImage.UnloadEx(ref dib);
}
[Test]
public void FreeImage_RawBits()
{
dib = iManager.GetBitmap(ImageType.Even, ImageColorType.Type_32);
Assert.AreNotEqual(0, dib);
IntPtr buffer = Marshal.AllocHGlobal((int)FreeImage.GetDIBSize(dib));
FreeImage.ConvertToRawBits(
buffer,
dib,
(int)FreeImage.GetPitch(dib),
FreeImage.GetBPP(dib),
FreeImage.GetRedMask(dib),
FreeImage.GetGreenMask(dib),
FreeImage.GetBlueMask(dib),
true);
FIBITMAP temp = FreeImage.ConvertFromRawBits(
buffer,
(int)FreeImage.GetWidth(dib),
(int)FreeImage.GetHeight(dib),
(int)FreeImage.GetPitch(dib),
FreeImage.GetBPP(dib),
FreeImage.GetRedMask(dib),
FreeImage.GetGreenMask(dib),
FreeImage.GetBlueMask(dib),
true);
Assert.AreNotEqual(0, temp);
Marshal.FreeHGlobal(buffer);
FreeImage.UnloadEx(ref temp);
FreeImage.UnloadEx(ref dib);
}
[Test]
public void FreeImage_ConvertToRGBF()
{
dib = iManager.GetBitmap(ImageType.Even, ImageColorType.Type_32);
Assert.AreNotEqual(0, dib);
FIBITMAP temp = FreeImage.ConvertToRGBF(dib);
Assert.AreNotEqual(0, temp);
Assert.AreEqual(FREE_IMAGE_TYPE.FIT_RGBF, FreeImage.GetImageType(temp));
FreeImage.UnloadEx(ref temp);
FreeImage.UnloadEx(ref dib);
}
[Test]
public void FreeImage_ConvertToStandardType()
{
dib = iManager.GetBitmap(ImageType.Even, ImageColorType.Type_04_Greyscale_MinIsBlack);
Assert.AreNotEqual(0, dib);
FIBITMAP temp = FreeImage.ConvertToStandardType(dib, true);
Assert.AreNotEqual(0, temp);
Assert.AreEqual(FREE_IMAGE_COLOR_TYPE.FIC_PALETTE, FreeImage.GetColorType(temp));
FreeImage.UnloadEx(ref temp);
FreeImage.UnloadEx(ref dib);
}
[Test]
public void FreeImage_ConvertToType()
{
dib = iManager.GetBitmap(ImageType.Even, ImageColorType.Type_08_Greyscale_Unordered);
Assert.AreNotEqual(0, dib);
FIBITMAP temp = FreeImage.ConvertToType(dib, FREE_IMAGE_TYPE.FIT_UINT32, true);
Assert.AreNotEqual(0, temp);
Assert.AreEqual(FREE_IMAGE_TYPE.FIT_UINT32, FreeImage.GetImageType(temp));
FreeImage.UnloadEx(ref temp);
FreeImage.UnloadEx(ref dib);
}
[Test]
public void FreeImage_ToneMapping()
{
FIBITMAP temp;
dib = iManager.GetBitmap(ImageType.Even, ImageColorType.Type_24);
Assert.AreNotEqual(0, dib);
FIBITMAP rgbf = FreeImage.ConvertToRGBF(dib);
Assert.AreNotEqual(0, rgbf);
Assert.AreEqual(FREE_IMAGE_TYPE.FIT_RGBF, FreeImage.GetImageType(rgbf));
Assert.AreEqual(96, FreeImage.GetBPP(rgbf));
temp = FreeImage.ToneMapping(rgbf, FREE_IMAGE_TMO.FITMO_REINHARD05, 1f, 1.1f);
Assert.AreNotEqual(0, temp);
Assert.AreEqual(24, FreeImage.GetBPP(temp));
FreeImage.UnloadEx(ref temp);
FreeImage.UnloadEx(ref rgbf);
FreeImage.UnloadEx(ref dib);
}
[Test]
public void FreeImage_TmoDrago03()
{
FIBITMAP temp;
dib = iManager.GetBitmap(ImageType.Even, ImageColorType.Type_24);
Assert.AreNotEqual(0, dib);
FIBITMAP rgbf = FreeImage.ConvertToRGBF(dib);
Assert.AreNotEqual(0, rgbf);
Assert.AreEqual(FREE_IMAGE_TYPE.FIT_RGBF, FreeImage.GetImageType(rgbf));
Assert.AreEqual(96, FreeImage.GetBPP(rgbf));
temp = FreeImage.TmoDrago03(rgbf, 1f, 1.2f);
Assert.AreNotEqual(0, temp);
Assert.AreEqual(24, FreeImage.GetBPP(temp));
FreeImage.UnloadEx(ref temp);
FreeImage.UnloadEx(ref rgbf);
FreeImage.UnloadEx(ref dib);
}
[Test]
public void FreeImage_TmoReinhard05()
{
FIBITMAP temp;
dib = iManager.GetBitmap(ImageType.Even, ImageColorType.Type_24);
Assert.AreNotEqual(0, dib);
FIBITMAP rgbf = FreeImage.ConvertToRGBF(dib);
Assert.AreNotEqual(0, rgbf);
Assert.AreEqual(FREE_IMAGE_TYPE.FIT_RGBF, FreeImage.GetImageType(rgbf));
Assert.AreEqual(96, FreeImage.GetBPP(rgbf));
temp = FreeImage.TmoReinhard05(rgbf, 0f, 0.25f);
Assert.AreNotEqual(0, temp);
Assert.AreEqual(24, FreeImage.GetBPP(temp));
FreeImage.UnloadEx(ref temp);
FreeImage.UnloadEx(ref rgbf);
FreeImage.UnloadEx(ref dib);
}
[Test]
public void FreeImage_TmoFattal02()
{
FIBITMAP temp;
dib = iManager.GetBitmap(ImageType.Even, ImageColorType.Type_24);
Assert.AreNotEqual(0, dib);
FIBITMAP rgbf = FreeImage.ConvertToRGBF(dib);
Assert.AreNotEqual(0, rgbf);
Assert.AreEqual(FREE_IMAGE_TYPE.FIT_RGBF, FreeImage.GetImageType(rgbf));
Assert.AreEqual(96, FreeImage.GetBPP(rgbf));
temp = FreeImage.TmoFattal02(rgbf, 1f, 0.79f);
Assert.AreNotEqual(0, temp);
Assert.AreEqual(24, FreeImage.GetBPP(temp));
FreeImage.UnloadEx(ref temp);
FreeImage.UnloadEx(ref rgbf);
FreeImage.UnloadEx(ref dib);
}
[Test]
public void FreeImage_ZLibCompress_ZLibUncompress()
{
Random rand = new Random(DateTime.Now.Millisecond);
byte[] source = new byte[10240];
byte[] compressed = new byte[(int)(10355f * 1.01 + 12f)];
byte[] uncompressed = new byte[10240];
rand.NextBytes(source);
Assert.AreNotEqual(0, FreeImage.ZLibCompress(compressed, (uint)compressed.Length, source, (uint)source.Length));
Assert.AreNotEqual(0, FreeImage.ZLibUncompress(uncompressed, (uint)source.Length, compressed, (uint)compressed.Length));
for (int i = 0; i < source.Length; i++)
if (source[i] != uncompressed[i])
Assert.Fail();
}
[Test]
public void FreeImage_ZLibGZip_ZLibGUnzip()
{
Random rand = new Random(DateTime.Now.Millisecond);
byte[] source = new byte[10240];
byte[] compressed = new byte[(int)(10355f * 1.01 + 24f)];
byte[] uncompressed = new byte[10240];
rand.NextBytes(source);
Assert.AreNotEqual(0, FreeImage.ZLibGZip(compressed, (uint)compressed.Length, source, (uint)source.Length));
Assert.AreNotEqual(0, FreeImage.ZLibGUnzip(uncompressed, (uint)source.Length, compressed, (uint)compressed.Length));
for (int i = 0; i < source.Length; i++)
if (source[i] != uncompressed[i])
Assert.Fail();
}
[Test]
public void FreeImage_ZLibCRC32()
{
byte[] buffer = new byte[0];
Assert.AreEqual(0xFEBCA008, FreeImage.ZLibCRC32(0xFEBCA008, buffer, 0));
}
[Test]
public void FreeImage_CreateTag()
{
FITAG tag = FreeImage.CreateTag();
Assert.AreNotEqual(0, tag);
FITAG tag_clone = FreeImage.CloneTag(tag);
Assert.AreNotEqual(0, tag_clone);
FreeImage.DeleteTag(tag);
FreeImage.DeleteTag(tag_clone);
}
[Test]
public void FreeImage_Tag_accessors()
{
dib = iManager.GetBitmap(ImageType.Metadata, ImageColorType.Type_01_Dither);
Assert.AreNotEqual(0, dib);
FITAG tag;
FIMETADATA mData = FreeImage.FindFirstMetadata(FREE_IMAGE_MDMODEL.FIMD_EXIF_EXIF, dib, out tag);
Assert.AreNotEqual(0, mData);
Assert.AreNotEqual(0, tag);
Assert.IsTrue(FreeImage.FindNextMetadata(mData, out tag));
Assert.AreNotEqual(0, tag);
FreeImage.FindCloseMetadata(mData);
FreeImage.UnloadEx(ref dib);
}
[Test]
public void FreeImage_GetTagKey()
{
dib = iManager.GetBitmap(ImageType.Metadata, ImageColorType.Type_01_Dither);
Assert.AreNotEqual(0, dib);
FITAG tag;
FIMETADATA mData = FreeImage.FindFirstMetadata(FREE_IMAGE_MDMODEL.FIMD_EXIF_EXIF, dib, out tag);
Assert.AreNotEqual(0, mData);
Assert.AreNotEqual(0, tag);
FreeImage.GetTagKey(tag);
FreeImage.FindCloseMetadata(mData);
FreeImage.UnloadEx(ref dib);
}
[Test]
public void FreeImage_GetTagDescription()
{
dib = iManager.GetBitmap(ImageType.Metadata, ImageColorType.Type_01_Dither);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -