Bitmap img = new Bitmap("C:\\temp\\images\\file.jpg");
img.PixelFormat is Format24bppRgb
when I am doing deep copy
Bitmap img2 = new Bitmap(img);
img.PixelFormat is changed to Format32bppArgb
why does it change pixel format? and how to make deep copy for the object if it doesn't make deep copy?
You can clone the bitmap like this, which will create a deep copy:
Bitmap img = new Bitmap("C:\\temp\\images\\file.jpg");
// Clone the bitmap.
Rectangle cloneRect = new Rectangle(0, 0, img.Width, img.Height);
System.Drawing.Imaging.PixelFormat format =
img.PixelFormat;
Bitmap img2 = img.Clone(cloneRect, format);
Just found solution instead new Bitmap(img) use Bitmap img2 = (Bitmap) img.Clone(); don't know it is the right solution, but it do the job.
来源:https://stackoverflow.com/questions/20044431/bitmap-deep-copy-changing-pixelformat