我有圖像,有System.Drawing.Imaging.PixelFormat.Format1bppIndexed
(在Windows資源管理器文件屬性中查看)。爲什麼PixelFormat是Format32bppArgb,但圖像有Format1bppIndexed
但加載文件後,看到Format32bppArgb
:
string path = "cat.png";
using (var bitmap = new System.Drawing.Bitmap(path))
{
// bitmap.PixelFormat == Format32bppArgb, but must Format1bppIndexed
}
可能是什麼問題呢?
測試圖像1:http://i.stack.imgur.com/r2HGH.png
測試圖像2:http://i.stack.imgur.com/xUgEy.png
UPD
嘗試使用構造
// useIcm:
// true to use color correction for this System.Drawing.Bitmap; otherwise, false.
Bitmap(string filename, bool useIcm);
測試圖像1裝載的成功,但測試圖像2有Format32bppArgb
圖像編解碼器不需要告訴你任何關於文件的像素格式。 PNG編解碼器在這裏做的很好,1bppIndexed是一種非常尷尬的格式,與所有索引格式一樣,不支持基本的圖像處理,並將其轉換爲視頻適配器格式非常慢。 32bppArgb沒有這樣的問題。 –