Bitmapクラスをnew Bitmap(/*サイズ*/)で実体化したとき、
何も描かれていない透明なBitmapができると思うのですが、
そこに何か描画して、元の透明な状態に戻すにはどうしたらいいでしょうか。
透明な色で作成したBitmapを塗りつぶせばよさそうですが、やりかたがわかりません。
よろしくお願いします。
C# Bitmapクラス
Re: C# Bitmapクラス
一応,サイズ指定でBitmapを生成した時の色は,明文化されていなかったりします。
さらに,参照コードを経由してGDI+のBitmap.Bitmap(INT, INT, INT, PixelFormat, BYTE*) constructorに辿り着いてもscan0にnullを渡した場合について記載が無かったりします。
それはともかく,元はnew Color()を全ピクセルに設定したものと考えられるので,
Graphics.FromImageで得たGraphicsを,FillRectangleで透明色で塗りつぶせば良いです。
こんな感じで。
Bitmap.LockBitsしたデータをunsafeのポインタ操作で処理した方が早いかもしれませんが……。
さらに,参照コードを経由して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);
}