You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
156 lines
4.5 KiB
156 lines
4.5 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
using System.IO;
|
|
|
|
namespace FreeImageNETUnitTest
|
|
{
|
|
internal enum ImageType : byte
|
|
{
|
|
Even,
|
|
Odd,
|
|
JPEG,
|
|
Metadata,
|
|
Multipaged
|
|
}
|
|
|
|
internal enum ImageColorType : byte
|
|
{
|
|
Type_01_Dither,
|
|
Type_01_Threshold,
|
|
Type_04,
|
|
Type_04_Greyscale_MinIsBlack,
|
|
Type_04_Greyscale_Unordered,
|
|
Type_08,
|
|
Type_08_Greyscale_MinIsBlack,
|
|
Type_08_Greyscale_Unordered,
|
|
Type_16_555,
|
|
Type_16_565,
|
|
Type_24,
|
|
Type_32,
|
|
}
|
|
|
|
internal class ImageManager
|
|
{
|
|
public readonly string baseDirectory = null;
|
|
|
|
public ImageManager()
|
|
: this(new DirectoryInfo(Environment.CurrentDirectory).Parent.Parent.Parent.FullName + @"\UnitTestData\Images\")
|
|
{
|
|
}
|
|
|
|
public ImageManager(string baseDirectory)
|
|
{
|
|
if (!Directory.Exists(baseDirectory))
|
|
throw new DirectoryNotFoundException();
|
|
this.baseDirectory = baseDirectory;
|
|
}
|
|
|
|
public string GetBitmapPath(ImageType type, ImageColorType colorType)
|
|
{
|
|
string filename = null;
|
|
|
|
switch (type)
|
|
{
|
|
case ImageType.Even:
|
|
switch (colorType)
|
|
{
|
|
case ImageColorType.Type_01_Dither:
|
|
filename = baseDirectory + @"Even\Image_01_dither.tif";
|
|
break;
|
|
case ImageColorType.Type_01_Threshold:
|
|
filename = baseDirectory + @"Even\Image_01_threshold.tif";
|
|
break;
|
|
case ImageColorType.Type_04:
|
|
filename = baseDirectory + @"Even\Image_04.tif";
|
|
break;
|
|
case ImageColorType.Type_04_Greyscale_MinIsBlack:
|
|
filename = baseDirectory + @"Even\Image_04_gs_minisblack.tif";
|
|
break;
|
|
case ImageColorType.Type_04_Greyscale_Unordered:
|
|
filename = baseDirectory + @"Even\Image_04_gs_unordered.tif";
|
|
break;
|
|
case ImageColorType.Type_08:
|
|
filename = baseDirectory + @"Even\Image_08.tif";
|
|
break;
|
|
case ImageColorType.Type_08_Greyscale_MinIsBlack:
|
|
filename = baseDirectory + @"Even\Image_08_gs_minisblack.tif";
|
|
break;
|
|
case ImageColorType.Type_08_Greyscale_Unordered:
|
|
filename = baseDirectory + @"Even\Image_08_gs_unordered.tif";
|
|
break;
|
|
case ImageColorType.Type_16_555:
|
|
filename = baseDirectory + @"Even\Image_16_555.bmp";
|
|
break;
|
|
case ImageColorType.Type_16_565:
|
|
filename = baseDirectory + @"Even\Image_16_565.bmp";
|
|
break;
|
|
case ImageColorType.Type_24:
|
|
filename = baseDirectory + @"Even\Image_24.tif";
|
|
break;
|
|
case ImageColorType.Type_32:
|
|
filename = baseDirectory + @"Even\Image_32.tif";
|
|
break;
|
|
}
|
|
break;
|
|
case ImageType.Odd:
|
|
switch (colorType)
|
|
{
|
|
case ImageColorType.Type_01_Dither:
|
|
filename = baseDirectory + @"Odd\Image_01_dither.tif";
|
|
break;
|
|
case ImageColorType.Type_01_Threshold:
|
|
filename = baseDirectory + @"Odd\Image_01_threshold.tif";
|
|
break;
|
|
case ImageColorType.Type_04:
|
|
filename = baseDirectory + @"Odd\Image_04.tif";
|
|
break;
|
|
case ImageColorType.Type_04_Greyscale_MinIsBlack:
|
|
filename = baseDirectory + @"Odd\Image_04_gs_minisblack.tif";
|
|
break;
|
|
case ImageColorType.Type_04_Greyscale_Unordered:
|
|
filename = baseDirectory + @"Odd\Image_04_gs_unordered.tif";
|
|
break;
|
|
case ImageColorType.Type_08:
|
|
filename = baseDirectory + @"Odd\Image_08.tif";
|
|
break;
|
|
case ImageColorType.Type_08_Greyscale_MinIsBlack:
|
|
filename = baseDirectory + @"Odd\Image_08_gs_minisblack.tif";
|
|
break;
|
|
case ImageColorType.Type_08_Greyscale_Unordered:
|
|
filename = baseDirectory + @"Odd\Image_08_gs_unordered.tif";
|
|
break;
|
|
case ImageColorType.Type_16_555:
|
|
filename = baseDirectory + @"Odd\Image_16_555.bmp";
|
|
break;
|
|
case ImageColorType.Type_16_565:
|
|
filename = baseDirectory + @"Odd\Image_16_565.bmp";
|
|
break;
|
|
case ImageColorType.Type_24:
|
|
filename = baseDirectory + @"Odd\Image_24.tif";
|
|
break;
|
|
}
|
|
break;
|
|
case ImageType.JPEG:
|
|
filename = baseDirectory + @"JPEG\Image.jpg";
|
|
break;
|
|
case ImageType.Metadata:
|
|
filename = baseDirectory + @"Metadata\exif.jpg";
|
|
break;
|
|
case ImageType.Multipaged:
|
|
filename = baseDirectory + @"Multipaged\Image.tif";
|
|
break;
|
|
}
|
|
return filename;
|
|
}
|
|
|
|
public FreeImageAPI.FIBITMAP GetBitmap(ImageType type, ImageColorType colorType)
|
|
{
|
|
FreeImageAPI.FIBITMAP result = new FreeImageAPI.FIBITMAP();
|
|
string filename = GetBitmapPath(type, colorType);
|
|
if (!String.IsNullOrEmpty(filename) && File.Exists(filename))
|
|
result = FreeImageAPI.FreeImage.LoadEx(filename);
|
|
return result;
|
|
}
|
|
}
|
|
} |