在Visual Studio 2008中工作我試圖在PNG圖像上繪製並再次保存該圖像。C#中的PNG圖像問題
我做到以下幾點:
private Image img = Image.FromFile("file.png");
private Graphics newGraphics;
並在構造函數:
newGraphics = Graphics.FromImage(img);
構建解決方案沒有給出錯誤。當我嘗試運行它,我得到這個:
圖形對象不能創建從具有索引 像素格式的圖像 。
我沒有太多的在C#中使用圖像的經驗。這是什麼意思,我該如何補救?
編輯:通過調試,Visual Studio告訴我,圖像有一個format8bppindexed
像素格式。
所以,如果我不能使用Graphics類,我該用什麼?
編輯2:在閱讀this後,我認爲可以安全地假設在使用GDI +時,我更好地堅持JPG文件,不是嗎?
EDIT3:我使用語句:
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Imaging;
using System.Windows.Forms;
使用這種方法的任何運氣? http://www.c-sharpcorner.com/UploadFile/rrraman/graphicsObject08232007102733AM/graphicsObject.aspx – Greg 2009-10-26 14:55:58
我一直在用Graphics對象來使用PNG文件。發佈一個鏈接到您正在使用的PNG文件,我們會看到它有什麼問題。 – MusiGenesis 2009-10-26 14:57:25
內部GDI與Bitmaps一起使用,JPG被壓縮,並不是真的有很大的壓縮圖像來處理原始數據。您的圖像是8bppIndexed,這是一種位圖格式,其中顏色存儲在調色板中,而不是像素數據。 Graphics對象不能直接修改像素值,因爲這不會改變它。你需要將它轉換爲24bppRGB – badbod99 2009-10-26 15:12:16