我正在複製圖像。 (我的實際代碼是調整圖像大小,但這與我的問題無關。)我的代碼看起來像這樣。使用Graphics.DrawImage()繪製透明度/ Alpha通道圖像
Image src = ...
using (Image dest = new Bitmap(width, height))
{
Graphics graph = Graphics.FromImage(dest);
graph.InterpolationMode = InterpolationMode.HighQualityBicubic;
graph.DrawImage(src, 0, 0, width, height);
dest.Save(filename, saveFormat);
}
這似乎除非src
從圖像加載有透明膠片(如GIF)或α信道(諸如PNG)工作極大。
如何獲得DrawImage()
將透明膠片/ alpha通道傳輸到新圖像,然後在保存文件時保留它們?
問題是'saveFormat'變量的值是什麼?它應該是'PixelFormat.Format32bppArgb'(或處理了alpha通道的另一種格式)。另請嘗試:'使用(圖像dest =新位圖(寬度,高度,PixelFormat.Format32bppArgb))'。 –
這似乎適用於alpha通道,但不適用於GIF透明膠片。 'saveFormat'會根據輸入文件的格式而有所不同。如果輸入文件不支持Alpha通道,那麼假設圖像不包含Alpha通道像素是安全的。 –
那麼,saveFormat對GIF文件的價值是什麼:)? –