添加8 bpp PNG到您的資源文件。 如果您嘗試使用它,比如:如何防止VS設置爲32ARGB從8 bpp原始圖像的位圖
Bitmap bmp = properties.Resources.My8bppImage;
的BMP的PixelFormat將是32 ARGB!但它是錯誤的,應該是8 bpp索引。 如何獲取正確的位圖?
添加8 bpp PNG到您的資源文件。 如果您嘗試使用它,比如:如何防止VS設置爲32ARGB從8 bpp原始圖像的位圖
Bitmap bmp = properties.Resources.My8bppImage;
的BMP的PixelFormat將是32 ARGB!但它是錯誤的,應該是8 bpp索引。 如何獲取正確的位圖?
這裏沒有很多選項,Visual Studio資源編輯器和Bitmap類都使用PNG解碼器,它將圖像轉換爲32bpp。這意味着很有幫助,32bpp呈現的很好,很快。
回退選項是使用System.Windows.Media.Imaging.PngBitmapDecoder類。您可以將它傳遞給BitmapCreateOptions.PreservePixelFormat選項並強制它保留8bpp格式。您可以將png作爲資源添加,首先將其重命名爲.bin文件,這樣它就不會嘗試將其解釋爲圖像文件,但會將其設置爲字節[]。然後像這樣的代碼將工作:
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.IO;
...
Stream stream = new MemoryStream(Properties.Resources.marble8);
PngBitmapDecoder decoder = new PngBitmapDecoder(stream,
BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default);
BitmapSource bitmapSource = decoder.Frames[0];
其中「marble8」是我用的測試圖像,替代你自己的。您需要添加對WindowsBase和PresentationCore程序集的引用。
你能顯示一些代碼嗎? – 2012-04-02 18:46:08