public void Example() { // Load the sample bitmap. FIBITMAP dib = FreeImage.LoadEx("Sample.jpg"); // Check success if (dib.IsNull) { Console.WriteLine("Sample.jpg could not be loaded. Aborting."); return; } // Get the bitmaps ICC-Profile. FIICCPROFILE icc = FreeImage.GetICCProfileEx(dib); // Print the profiles address. Console.WriteLine("The profiles memory-address is : 0x{0}", icc.DataPointer.ToString("X")); // Print the profiles size Console.WriteLine("The profiles size is : {0} bytes", icc.Size); // Create data for a new profile. byte[] data = new byte[256]; for (int i = 0; i < data.Length; i++) data[i] = (byte)i; // Create the new profile icc = new FIICCPROFILE(dib, data); Console.WriteLine("The profiles memory-address is : 0x{0}", icc.DataPointer.ToString("X")); Console.WriteLine("The profiles size is : {0} bytes", icc.Size); // Create the new profile but only use the first 64 bytes icc = new FIICCPROFILE(dib, data, 64); Console.WriteLine("The profiles memory-address is : 0x{0}", icc.DataPointer.ToString("X")); Console.WriteLine("The profiles size is : {0} bytes", icc.Size); // CreateICCProfileEx(...) does the same as above icc = FreeImage.CreateICCProfileEx(dib, data, 16); Console.WriteLine("The profiles memory-address is : 0x{0}", icc.DataPointer.ToString("X")); Console.WriteLine("The profiles size is : {0} bytes", icc.Size); FreeImage.UnloadEx(ref dib); }
public void FIICCPROFILE() { Random rand = new Random(DateTime.Now.Millisecond); FIICCPROFILE var = new FIICCPROFILE(); Assert.AreEqual(0, var.Data.Length); Assert.AreEqual(IntPtr.Zero, var.DataPointer); Assert.AreEqual(0, var.Size); dib = iManager.GetBitmap(ImageType.Odd, ImageColorType.Type_24); Assert.That(!dib.IsNull); byte[] data = new byte[512]; rand.NextBytes(data); var = FreeImage.GetICCProfileEx(dib); Assert.AreEqual(0, var.Size); var = new FIICCPROFILE(dib, data, 256); Assert.AreEqual(256, var.Data.Length); Assert.AreNotEqual(IntPtr.Zero, var.DataPointer); Assert.AreEqual(256, var.Size); byte[] dataComp = var.Data; for (int i = 0; i < data.Length && i < dataComp.Length; i++) if (data[i] != dataComp[i]) Assert.Fail(); FreeImage.DestroyICCProfile(dib); var = FreeImage.GetICCProfileEx(dib); Assert.AreEqual(0, var.Size); var = new FIICCPROFILE(dib, data); Assert.AreEqual(512, var.Data.Length); Assert.AreNotEqual(IntPtr.Zero, var.DataPointer); Assert.AreEqual(512, var.Size); dataComp = var.Data; for (int i = 0; i < data.Length && i < dataComp.Length; i++) if (data[i] != dataComp[i]) Assert.Fail(); var = FreeImage.GetICCProfileEx(dib); Assert.AreEqual(512, var.Data.Length); Assert.AreNotEqual(IntPtr.Zero, var.DataPointer); Assert.AreEqual(512, var.Size); FreeImage.DestroyICCProfile(dib); var = FreeImage.GetICCProfileEx(dib); Assert.AreEqual(0, var.Size); FreeImage.UnloadEx(ref dib); }