using (var bmp = new Bitmap(image.Width, image.Height, PixelFormat.Format32bppArgb))
using (var g = Graphics.FromImage(bmp))
{
g.Clear(Color.Transparent);
g.DrawImage(image, 0, 0);
bmp.Save("image.bmp", ImageFormat.Bmp);
}
透明性を保持していないとの質問が明確でなければなりません:PNGはそれを保つに節約しながら、なぜBMPへの保存は、黒に透明性をゴミ?ただ、明確にする保存ビットマップ32bppでは
:画像はでフォーマットをFormat8bppIndexedされ、そのパレットは、(それがフォーム/ピクチャボックス上に正しく描画など)透明色を含んでいます
編集:私の悪い、Bitmap.Save( )は、実際にビットマップ形式がFormat32bppArgbであっても、Format32bppRgb形式でBMPを保存します。
画像が24bppの場合、透明ピクセルをどのように含むことができますか? – CodesInChaos
誤って申し訳ありません。これはFormat8bppIndexed形式であり、そのパレットは透明なものも含む色を変更しました – mnn
なぜパレットを使用していますか? –