1
我正在使用一種方法來獲取圖像的像素來檢查這個點是否透明。我正在使用GetPixel,它返回帶有32位顏色信息的System.Drawing.Color。C#GDI - 如何檢查像素是否不透明?
該結構具有「A」屬性,我可以根據此MSDN topic獲取像素的Alpha值。
代碼:
using (Bitmap bmp = new Bitmap(path))
{
Color pixel = bmp.GetPixel(0, 0);
if (pixel.A == 0)
// This is a fully transparent pixel
else
// This is not a fully transparent pixel
}
是如何檢查是否像素是不透明或不正確的方法是什麼?
不透明是255 alpha通道。 – OneFineDay
我同意,這是明確的MSDN文章,但我從來沒有得到這個價值。對於PNG和GIF圖像,此通道最多可以顯示86個圖像,而對於完全不透明的JPEG圖像,我會獲得其他不固定的值。 – rkawano
FWIW:JPEG圖像文件不能表示透明度。我認爲JPEG2000格式可以,但不是原始JPEG。我不知道爲什麼bmp.GetPixel會在JPEG通道的alpha通道中返回垃圾。 – dthorpe