Bitmap img = new Bitmap("C:\\temp\\images\\file.jpg");
img.PixelFormat是Format24bppRgb
当我做深拷贝时
Bitmap img2 = new Bitmap(img);
img.PixelFormat更改为Format32bppArgb
为什么它会改变像素格式?以及如果不进行深层复制,如何为对象制作深层复制?
答案 0 :(得分:1)
刚找到解决方案而不是新的Bitmap(img)使用Bitmap img2 = (Bitmap) img.Clone();
不知道它是正确的解决方案,但是它可以完成这项工作。
答案 1 :(得分:1)
您可以像这样克隆位图,这将创建一个深层副本:
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);