Bitmapに読み込んだ画像に上書きできない
Bitmap bmp1 = new Bitmap(filename);
読み込んだ画像はbmp1が解放されるまで、ファイルの内容が変更されないように噛んでしまうわけです。何かと不自由です。
同じサイズのBitmapに内容をコピーしておいて、早々に解放しておくというやりかたがあります。
ソースコード
Bitmap temp = new Bitmap(filename); // 一回読み込んで
Bitmap bmp = new Bitmap(temp.Width, temp.Height); // おんなじサイズのBitmapを作って
Graphics g = Graphics.FromImage(bmp);
g.DrawImage(temp,0,0,bmp.Width,bmp.Height); // 絵だけコピー
g.Dispose();
temp.Dispose(); // 後処理
少し面倒なようだけど、手放しておいたほうがいいです。
Clone()で複製しても当然のように駄目なのでご注意。
それから、もともとの画像の解像度が72じゃないと大きさに違いが出てくるのでDrawImageなんかのサイズ指定するときも注意。
0 件のコメント :
コメントを投稿