public bool Compare(ImageData arg) { if (m_ContentType != arg.m_ContentType) return false; if (m_Image.GetLongLength(0) != arg.m_Image.GetLongLength(0)) return false; // Compare the arrays byte by byte long length = m_Image.GetLongLength(0); for (long n = 0; n < length; n++) if (m_Image[n] != arg.m_Image[n]) return false; return true; }
// General function for handling images that tries to use an existing image if they are the same private static ImageData ManageImageCopy(ImagePart oldImage, List<ImageData> images) { ImageData oldImageData = new ImageData(oldImage); foreach (ImageData item in images) { if (item.Compare(oldImageData)) return item; } images.Add(oldImageData); return oldImageData; }