📄 unittest.cs
字号:
using System;
using System.Drawing;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
using System.IO;
using System.Drawing.Imaging;
using System.Net;
using FreeImageNETUnitTest;
using System.Reflection;
using System.Threading;
using System.Runtime.Serialization.Formatters.Binary;
using System.Collections;
using FreeImageAPI;
using FreeImageAPI.IO;
using FreeImageAPI.Metadata;
using FreeImageAPI.Plugins;
using NUnit.Framework;
namespace FreeImageNETUnitTest
{
[TestFixture]
public class ImportedFunctionsTest
{
ImageManager iManager = new ImageManager();
FIBITMAP dib;
string freeImageCallback = null;
[TestFixtureSetUp]
public void Init()
{
FreeImage.Message += new OutputMessageFunction(FreeImage_Message);
}
[TestFixtureTearDown]
public void DeInit()
{
FreeImage.Message -= new OutputMessageFunction(FreeImage_Message);
}
[SetUp]
public void InitEachTime()
{
}
[TearDown]
public void DeInitEachTime()
{
}
void FreeImage_Message(FREE_IMAGE_FORMAT fif, string message)
{
freeImageCallback = message;
}
[Test]
public void FreeImage_GetVersion()
{
string version = FreeImage.GetVersion();
Assert.IsNotEmpty(version);
}
[Test]
public void FreeImage_GetCopyrightMessage()
{
string copyright = FreeImage.GetCopyrightMessage();
Assert.IsNotEmpty(copyright);
}
[Test]
public void FreeImage_OutputMessageProc_SetOutputMessage()
{
Assert.IsNull(freeImageCallback);
FreeImage.SetOutputMessage(new OutputMessageFunction(FreeImage_Message));
FreeImage.OutputMessageProc(FREE_IMAGE_FORMAT.FIF_UNKNOWN, "unit test");
FreeImage.SetOutputMessage(null);
Assert.IsNotNull(freeImageCallback);
freeImageCallback = null;
}
[Test]
public void FreeImage_Allocate()
{
dib = FreeImage.Allocate(
133,
77,
8,
FreeImage.FI_RGBA_RED_MASK,
FreeImage.FI_RGBA_GREEN_MASK,
FreeImage.FI_RGBA_BLUE_MASK);
Assert.AreNotEqual(0, dib);
FreeImage.UnloadEx(ref dib);
}
[Test]
public void FreeImage_AllocateT()
{
dib = FreeImage.AllocateT(FREE_IMAGE_TYPE.FIT_RGBA16, 31, 555, 64, 0, 0, 0);
Assert.AreNotEqual(0, dib);
FreeImage.UnloadEx(ref dib);
}
[Test]
public void FreeImage_Clone()
{
dib = FreeImage.Allocate(1, 1, 32, 0, 0, 0);
Assert.AreNotEqual(0, dib);
FIBITMAP temp = FreeImage.Clone(dib);
Assert.AreNotEqual(0, temp);
FreeImage.UnloadEx(ref temp);
FreeImage.UnloadEx(ref dib);
}
[Test]
public void FreeImage_Load()
{
Assert.AreEqual(0, dib);
dib = FreeImage.Load(FREE_IMAGE_FORMAT.FIF_JPEG, iManager.baseDirectory + @"JPEG\Image.jpg", FREE_IMAGE_LOAD_FLAGS.DEFAULT);
Assert.AreNotEqual(0, dib);
FreeImage.UnloadEx(ref dib);
Assert.AreEqual(0, dib);
}
[Test]
public void FreeImage_Unload()
{
Assert.AreEqual(0, dib);
dib = FreeImage.Load(FREE_IMAGE_FORMAT.FIF_JPEG, iManager.baseDirectory + @"JPEG\Image.jpg", FREE_IMAGE_LOAD_FLAGS.DEFAULT);
Assert.IsNotNull(dib);
FreeImage.Unload(dib);
dib = 0;
}
[Test]
public void FreeImage_LoadFromHandle()
{
byte[] data = File.ReadAllBytes(iManager.GetBitmapPath(ImageType.Even, ImageColorType.Type_16_555));
MemoryStream mStream = new MemoryStream(data);
FreeImageIO io = FreeImageStreamIO.io;
using (fi_handle handle = new fi_handle(mStream))
{
dib = FreeImage.LoadFromHandle(FREE_IMAGE_FORMAT.FIF_BMP, ref io, handle, FREE_IMAGE_LOAD_FLAGS.DEFAULT);
Assert.AreNotEqual(0, dib);
FreeImage.UnloadEx(ref dib);
}
}
[Test]
public void FreeImage_Save()
{
string filename = @"test.bmp";
dib = iManager.GetBitmap(ImageType.Even, ImageColorType.Type_08);
Assert.AreNotEqual(0, dib);
Assert.IsTrue(FreeImage.Save(FREE_IMAGE_FORMAT.FIF_BMP, dib, filename, FREE_IMAGE_SAVE_FLAGS.DEFAULT));
Assert.IsTrue(File.Exists(filename));
File.Delete(filename);
Assert.IsFalse(File.Exists(filename));
FreeImage.UnloadEx(ref dib);
}
[Test]
public void FreeImage_SaveToHandle()
{
FreeImageIO io = new FreeImageIO();
FreeImage.SaveToHandle(FREE_IMAGE_FORMAT.FIF_BMP, dib, ref io, new fi_handle(), FREE_IMAGE_SAVE_FLAGS.DEFAULT);
}
[Test]
public void FreeImage_Memory()
{
dib = FreeImage.Allocate(1, 1, 1, 0, 0, 0);
Assert.AreNotEqual(0, dib);
FIMEMORY mem = FreeImage.OpenMemory(IntPtr.Zero, 0);
Assert.AreNotEqual(0, mem);
FreeImage.SaveToMemory(FREE_IMAGE_FORMAT.FIF_TIFF, dib, mem, FREE_IMAGE_SAVE_FLAGS.DEFAULT);
Assert.AreNotEqual(0, FreeImage.TellMemory(mem));
Assert.IsTrue(FreeImage.SeekMemory(mem, 0, System.IO.SeekOrigin.Begin));
FIBITMAP temp = FreeImage.LoadFromMemory(FREE_IMAGE_FORMAT.FIF_TIFF, mem, FREE_IMAGE_LOAD_FLAGS.DEFAULT);
Assert.AreNotEqual(0, temp);
FreeImage.UnloadEx(ref temp);
uint size = 0;
byte[] ptr = new byte[1];
IntPtr buffer = IntPtr.Zero;
Assert.IsTrue(FreeImage.AcquireMemory(mem, ref buffer, ref size));
Assert.AreNotEqual(IntPtr.Zero, ptr);
Assert.AreNotEqual(0, size);
Assert.AreEqual(1, FreeImage.WriteMemory(ptr, 1, 1, mem));
FreeImage.SeekMemory(mem, 1, System.IO.SeekOrigin.Begin);
Assert.AreEqual(1, FreeImage.TellMemory(mem));
Assert.AreEqual(2, FreeImage.ReadMemory(ptr, 1, 2, mem));
FreeImage.CloseMemory(mem);
FreeImage.UnloadEx(ref dib);
}
[Test]
public void FreeImage_RegisterLocalPlugin()
{
InitProc proc = null;
Assert.AreEqual(FREE_IMAGE_FORMAT.FIF_UNKNOWN, FreeImage.RegisterLocalPlugin(proc, "", "", "", ""));
}
[Test]
public void FreeImage_RegisterExternalPlugin()
{
Assert.AreEqual(FREE_IMAGE_FORMAT.FIF_UNKNOWN, FreeImage.RegisterExternalPlugin("", "", "", "", ""));
}
[Test]
public void FreeImage_GetFIFCount()
{
Assert.AreNotEqual(0, FreeImage.GetFIFCount());
}
[Test]
public void FreeImage_SetPluginEnabled_IsPluginEnabled()
{
FreeImage.SetPluginEnabled(FREE_IMAGE_FORMAT.FIF_PNG, false);
Assert.AreEqual(0, FreeImage.IsPluginEnabled(FREE_IMAGE_FORMAT.FIF_PNG));
FreeImage.SetPluginEnabled(FREE_IMAGE_FORMAT.FIF_PNG, true);
Assert.AreEqual(1, FreeImage.IsPluginEnabled(FREE_IMAGE_FORMAT.FIF_PNG));
}
[Test]
public void FreeImage_GetFIFFromFormat()
{
Assert.AreEqual(FREE_IMAGE_FORMAT.FIF_UNKNOWN, FreeImage.GetFIFFromFormat(""));
Assert.AreNotEqual(FREE_IMAGE_FORMAT.FIF_UNKNOWN, FreeImage.GetFIFFromFormat("TIFF"));
}
[Test]
public void FreeImage_GetFIFFromMime()
{
Assert.AreEqual(FREE_IMAGE_FORMAT.FIF_UNKNOWN, FreeImage.GetFIFFromMime(""));
Assert.AreNotEqual(FREE_IMAGE_FORMAT.FIF_UNKNOWN, FreeImage.GetFIFFromMime("image/jpeg"));
}
[Test]
public void FreeImage_GetFormatFromFIF()
{
Assert.IsNotEmpty(FreeImage.GetFormatFromFIF(FREE_IMAGE_FORMAT.FIF_JNG));
}
[Test]
public void FreeImage_GetFIFExtensionList()
{
Assert.IsNotEmpty(FreeImage.GetFIFExtensionList(FREE_IMAGE_FORMAT.FIF_PGM));
}
[Test]
public void FreeImage_GetFIFDescription()
{
Assert.IsNotEmpty(FreeImage.GetFIFDescription(FREE_IMAGE_FORMAT.FIF_PBM));
}
[Test]
public void FreeImage_GetFIFRegExpr()
{
Assert.IsNotEmpty(FreeImage.GetFIFRegExpr(FREE_IMAGE_FORMAT.FIF_JPEG));
}
[Test]
public void FreeImage_GetFIFMimeType()
{
Assert.IsNotEmpty(FreeImage.GetFIFMimeType(FREE_IMAGE_FORMAT.FIF_ICO));
}
[Test]
public void FreeImage_GetFIFFromFilename()
{
Assert.AreNotEqual(FREE_IMAGE_FORMAT.FIF_UNKNOWN, FreeImage.GetFIFFromFilename("test.bmp"));
Assert.AreEqual(FREE_IMAGE_FORMAT.FIF_UNKNOWN, FreeImage.GetFIFFromFilename("test.000"));
}
[Test]
public void FreeImage_FIFSupportsReading()
{
Assert.IsTrue(FreeImage.FIFSupportsReading(FREE_IMAGE_FORMAT.FIF_TIFF));
}
[Test]
public void FreeImage_FIFSupportsWriting()
{
Assert.IsTrue(FreeImage.FIFSupportsWriting(FREE_IMAGE_FORMAT.FIF_GIF));
}
[Test]
public void FreeImage_FIFSupportsExportBPP()
{
Assert.IsTrue(FreeImage.FIFSupportsExportBPP(FREE_IMAGE_FORMAT.FIF_BMP, 32));
Assert.IsFalse(FreeImage.FIFSupportsExportBPP(FREE_IMAGE_FORMAT.FIF_GIF, 32));
}
[Test]
public void FreeImage_FIFSupportsExportType()
{
Assert.IsTrue(FreeImage.FIFSupportsExportType(FREE_IMAGE_FORMAT.FIF_BMP, FREE_IMAGE_TYPE.FIT_BITMAP));
Assert.IsFalse(FreeImage.FIFSupportsExportType(FREE_IMAGE_FORMAT.FIF_BMP, FREE_IMAGE_TYPE.FIT_COMPLEX));
}
[Test]
public void FreeImage_FIFSupportsICCProfiles()
{
Assert.IsTrue(FreeImage.FIFSupportsICCProfiles(FREE_IMAGE_FORMAT.FIF_JPEG));
Assert.IsFalse(FreeImage.FIFSupportsICCProfiles(FREE_IMAGE_FORMAT.FIF_BMP));
}
[Test]
public void FreeImage_MultiBitmap()
{
FIBITMAP temp;
FIMULTIBITMAP mdib = FreeImage.OpenMultiBitmap(
FREE_IMAGE_FORMAT.FIF_TIFF,
@"test.tif",
true,
false,
true,
FREE_IMAGE_LOAD_FLAGS.DEFAULT);
Assert.AreNotEqual(0, mdib);
Assert.AreEqual(0, FreeImage.GetPageCount(mdib));
dib = FreeImage.Allocate(10, 10, 8, 0, 0, 0);
FreeImage.AppendPage(mdib, dib);
Assert.AreEqual(1, FreeImage.GetPageCount(mdib));
FreeImage.AppendPage(mdib, dib);
Assert.AreEqual(2, FreeImage.GetPageCount(mdib));
FreeImage.AppendPage(mdib, dib);
Assert.AreEqual(3, FreeImage.GetPageCount(mdib));
FreeImage.CloseMultiBitmapEx(ref mdib);
FreeImage.UnloadEx(ref dib);
mdib = 0;
mdib = FreeImage.OpenMultiBitmap(FREE_IMAGE_FORMAT.FIF_TIFF, @"test.tif", false, false, true, FREE_IMAGE_LOAD_FLAGS.DEFAULT);
Assert.AreNotEqual(0, mdib);
Assert.AreEqual(3, FreeImage.GetPageCount(mdib));
dib = FreeImage.LockPage(mdib, 1);
temp = FreeImage.LockPage(mdib, 2);
int[] pages = null;
int count = 0;
FreeImage.GetLockedPageNumbers(mdib, pages, ref count);
Assert.AreEqual(2, count);
pages = new int[count];
FreeImage.GetLockedPageNumbers(mdib, pages, ref count);
Assert.AreEqual(2, pages.Length);
FreeImage.UnlockPage(mdib, dib, false);
FreeImage.UnlockPage(mdib, temp, true);
dib = 0;
Assert.IsTrue(FreeImage.MovePage(mdib, 0, 1));
FreeImage.CloseMultiBitmapEx(ref mdib);
Assert.IsTrue(System.IO.File.Exists("test.tif"));
System.IO.File.Delete("test.tif");
}
[Test]
public void FreeImage_GetFileType()
{
Assert.AreNotEqual(FREE_IMAGE_FORMAT.FIF_UNKNOWN, FreeImage.GetFileType(iManager.GetBitmapPath(ImageType.Even, ImageColorType.Type_08_Greyscale_Unordered), 0));
}
[Test]
public void FreeImage_GetFileTypeFromHandle()
{
FreeImageIO io = FreeImageStreamIO.io;
Assert.AreEqual(FREE_IMAGE_FORMAT.FIF_UNKNOWN, FreeImage.GetFileTypeFromHandle(ref io, new fi_handle(), 0));
}
[Test]
public void FreeImage_GetFileTypeFromMemory()
{
Assert.AreEqual(FREE_IMAGE_FORMAT.FIF_UNKNOWN, FreeImage.GetFileTypeFromMemory(new FIMEMORY(0), 0));
}
[Test]
public void FreeImage_IsLittleEndian()
{
Assert.IsTrue(FreeImage.IsLittleEndian());
}
[Test]
public void FreeImage_LookupX11Color()
{
byte red, green, blue;
FreeImage.LookupX11Color("lawngreen", out red, out green, out blue);
Assert.AreEqual(124, red);
Assert.AreEqual(252, green);
Assert.AreEqual(0, blue);
}
[Test]
public void FreeImage_LookupSVGColor()
{
byte red, green, blue;
FreeImage.LookupX11Color("orchid", out red, out green, out blue);
Assert.AreEqual(218, red);
Assert.AreEqual(112, green);
Assert.AreEqual(214, blue);
}
[Test]
public void FreeImage_GetBits()
{
dib = iManager.GetBitmap(ImageType.Odd, ImageColorType.Type_01_Threshold);
Assert.AreNotEqual(0, dib);
Assert.AreNotEqual(IntPtr.Zero, FreeImage.GetBits(dib));
FreeImage.UnloadEx(ref dib);
}
[Test]
public void FreeImage_GetScanLine()
{
dib = iManager.GetBitmap(ImageType.Even, ImageColorType.Type_04_Greyscale_MinIsBlack);
Assert.AreNotEqual(0, dib);
Assert.AreNotEqual(IntPtr.Zero, FreeImage.GetScanLine(dib, 0));
FreeImage.UnloadEx(ref dib);
}
[Test]
public void FreeImage_GetPixelIndex_SetPixelIndex()
{
dib = iManager.GetBitmap(ImageType.Odd, ImageColorType.Type_04_Greyscale_Unordered);
Assert.AreNotEqual(0, dib);
byte index_old, index_new;
Assert.IsTrue(FreeImage.GetPixelIndex(dib, 31, 10, out index_old));
index_new = index_old == byte.MaxValue ? (byte)0 : (byte)(index_old + 1);
Assert.IsTrue(FreeImage.SetPixelIndex(dib, 31, 10, ref index_new));
Assert.IsTrue(FreeImage.GetPixelIndex(dib, 31, 10, out index_old));
Assert.AreEqual(index_new, index_old);
FreeImage.UnloadEx(ref dib);
}
[Test]
public void FreeImage_GetPixelColor_SetPixelColor()
{
dib = iManager.GetBitmap(ImageType.Even, ImageColorType.Type_32);
Assert.AreNotEqual(0, dib);
RGBQUAD value_old, value_new;
Assert.IsTrue(FreeImage.GetPixelColor(dib, 77, 61, out value_old));
value_new = (value_old == (RGBQUAD)Color.White) ? Color.Black : Color.White;
Assert.IsTrue(FreeImage.SetPixelColor(dib, 77, 61, ref value_new));
Assert.IsTrue(FreeImage.GetPixelColor(dib, 77, 61, out value_old));
Assert.AreEqual(value_new, value_old);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -