我需要在我的磁盘上制作一个 PNG 图像的副本。事实上我需要更复杂的思考,但这是其中的一部分。所以,
我正在这样做:
Bitmap oldbmp = new Bitmap( filename );
Bitmap newbmp = new Bitmap(oldbmp.Size.Width, oldbmp.Size.Height, oldbmp.PixelFormat);
// if I don't do this, destination image looks bigger and clipped
newbmp1.SetResolution(oldbmp.HorizontalResolution, oldbmp.VerticalResolution);
Graphics graphics = Graphics.FromImage(newbmp);
graphics.DrawImageUnscaled(oldbmp,0,0);
newbmp.Save( filename2 );
我所拥有的是第二个文件具有不同的文件大小(有时更多,有时小于第一个)。
我猜编码有问题,但无法理解到底是什么。我必须更改或添加什么?
PS Bitmap.Clone( ... ) 不能满足我的需要。
更新:
好的,我的实际任务是:
将文件切割成几个较小的部分。
将零件保存到磁盘。
从磁盘读取部分。
将零件组装回完整图像。
将完整图像保存到磁盘。
第一个文件是PNG,最后一个文件是PNG,如果部分未更改,它们必须具有相同的大小。
不同的大小很重要,因为有些文件非常大,差异可能超过 2 MB!
更新2:
第一张图。执行代码后,文件的大小会增加。