ページ 1 / 1
C# Bitmapクラス
Posted: 2012年10月28日(日) 16:26
by 雨ガエル
Bitmapクラスをnew Bitmap(/*サイズ*/)で実体化したとき、
何も描かれていない透明なBitmapができると思うのですが、
そこに何か描画して、元の透明な状態に戻すにはどうしたらいいでしょうか。
透明な色で作成したBitmapを塗りつぶせばよさそうですが、やりかたがわかりません。
よろしくお願いします。
Re: C# Bitmapクラス
Posted: 2012年10月29日(月) 00:58
by YuO
一応,
サイズ指定でBitmapを生成した時の色は,明文化されていなかったりします。
さらに,参照コードを経由してGDI+の
Bitmap.Bitmap(INT, INT, INT, PixelFormat, BYTE*) constructorに辿り着いてもscan0にnullを渡した場合について記載が無かったりします。
それはともかく,元は
new Color()を全ピクセルに設定したものと考えられるので,
Graphics.FromImageで得た
Graphicsを,
FillRectangleで透明色で塗りつぶせば良いです。
こんな感じで。
コード:
using (var g = Graphics.FromImage(bitmap))
using (var brush = new SolidBrush(new Color()))
{
g.FillRectangle(brush, 0, 0, bitmap.Width, bitmap.Height);
}
Bitmap.LockBitsしたデータをunsafeのポインタ操作で処理した方が早いかもしれませんが……。
Re: C# Bitmapクラス
Posted: 2012年11月03日(土) 14:35
by 雨ガエル
別の方法を探そうと思います。
すみませんでした。