2010年2月9日 星期二

C# Image 的解析度與格式轉換的設定

之前因為常常用到圖像轉換,或是透過C#來進行一些圖像處理~但是最近發現到一個現象就是轉換後的圖像在檔案資訊裡的解析度(DPI)都變為96,後來上了Google大神查證之後發現只要在處理或式轉換時有用到 New Bitmap 而且您沒有設定解析度,這時候Bbitmap就會採用螢幕預設的解析度96DPI,所以檔案在儲存之後當案資訊裡的解析度也會變成96DPI。

另外也發現到不只是Bitmap會有這種情況,連影像編輯軟體也有舉例來說 : 透過ACDSEE進行轉檔不過格式轉換後發現到檔案資訊理的解析度也變成了96DPI,這實在是很困擾的一件事,或許有人會認為變成96DPI也沒什麼影響,不過對於那些需要將影像輸出的使用者可能就很麻煩,因為DPI被改變所以無法得知原來的DPI相對來說在圖像輸出時可能就會造成品質不好,所以為了預防這種狀況,我們可以利用下面的方法來改善。




另外就是若影像在儲存時您未設定任何的格式,通常在C#裡他會以PNG的格式來儲存但是副檔名並不會更改,這時候就會產生格式上錯誤的問題,因此在圖像儲存時最好還事先設定圖像儲存格式以免造成格式與附檔名不符的情況。