2011-04-13 48 views
0

我正在編寫一個程序,在處理它們之前必須先加載縮略圖圖像。即使是大圖像,加載的縮略圖也不會旋轉

img = Image.FromFile(file_path); 

int img_w = img.Width; 
int img_h = img.Height; 

int desired_size = 150; 

int img_h1 = desired_size; 
double resize = (double)img_h/(double)img_w; 
resize = (double)desired_size * resize; 
img_h1 = (int)resize; 

thumb = img.GetThumbnailImage(desired_size, img_h1, null, IntPtr.Zero); 

此代碼加載圖像,然後創建縮略圖。

一些由相機拍攝的照片被旋轉,所以我在IrfanView中將它們旋轉了90度。即使如此縮略圖加載在我的C#應用​​程序仍然旋轉錯誤(大圖像是好的)。

如何解決此問題?

回答

0

我的代碼中沒有看到可能會旋轉圖像的任何內容,所以我在考慮您加載的圖像文件有問題。

具體來說,我的猜測是你的圖像文件有一個嵌入的縮略圖,它沒有像「主」圖像旋轉。你說你使用IrfanView來旋轉圖像:take a look at this thread,並刷新縮略圖。這可能很好的解決你的問題,和這裏的原因:

報價MSDN's documentation for Image.GetThumbnailImage

如果圖像包含嵌入 縮略圖,這種方法檢索 嵌入的縮略圖,並對其進行縮放 所要求的大小。如果圖像 不包含嵌入的縮略圖 圖像,則此方法通過縮放主圖像來創建縮略圖 圖像。