using System.Drawing; using HPPH.System.Drawing; namespace HPPH.Test.SystemDrawing; [TestClass] public class SystemDrawingTests { private static IEnumerable GetTestImages() => Directory.EnumerateFiles(@"..\..\..\..\sample_data", "*.png", SearchOption.AllDirectories); [TestMethod] public void ImageConversion24Bit() { Image image = TestDataHelper.CreateTestImage(1920, 1080); using Bitmap bitmap = image.ToBitmap(); IImage image2 = bitmap.ToImage(); Assert.AreEqual(IColorFormat.BGR, image2.ColorFormat); image2 = image2.ConvertTo(); Assert.AreEqual(image, image2); } [TestMethod] public void ImageConversion32Bit() { Image image = TestDataHelper.CreateTestImage(1920, 1080); using Bitmap bitmap = image.ToBitmap(); IImage image2 = bitmap.ToImage(); Assert.AreEqual(IColorFormat.BGRA, image2.ColorFormat); image2 = image2.ConvertTo(); Assert.AreEqual(image, image2); } [TestMethod] public void LoadFileToPngLoadStream() { foreach (string image in GetTestImages()) { IImage img = System.Drawing.ImageHelper.LoadImage(image); byte[] png = img.ToPng(); using MemoryStream ms = new(png); IImage img2 = System.Drawing.ImageHelper.LoadImage(ms); Assert.AreEqual(img, img2); } } }