ディスクに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 );
私が持っているのは、2番目のファイルのファイルサイズが異なることです(最初のファイルよりも大きい場合と小さい場合があります)。
エンコーディングに何か問題があると思いますが、正確には何がわかりません。何を変更または追加する必要がありますか?
PS Bitmap.Clone(...)は私が必要とすることをしません。
アップデート:
わかりました、私の実際のタスクは次のとおりです。
ファイルをいくつかの小さな部分にカットします。
パーツをディスクに保存します。
ディスクからパーツを読み取ります。
パーツを組み立てて完全な画像に戻します。
フルイメージをディスクに保存します。
最初のファイルはPNG、最後のファイルはPNGです。パーツが変更されていない場合は、同じサイズである必要があります。
サイズが異なることが重要です。ファイルによっては非常に大きく、差が2MBを超える場合があるためです。
UPDATE2:
最初の画像。コードを実行すると、ファイルのサイズが大きくなります。