即使是大图像,加载的缩略图也不会旋转

问题描述:

我正在编写一个程序,在处理它们之前必须先加载缩略图图像。即使是大图像,加载的缩略图也不会旋转

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#应用​​程序仍然旋转错误(大图像是好的)。

如何解决此问题?

我的代码中没有看到可能会旋转图像的任何内容,所以我在考虑您加载的图像文件有问题。

具体来说,我的猜测是你的图像文件有一个嵌入的缩略图,它没有像“主”图像旋转。你说你使用IrfanView来旋转图像:take a look at this thread,并刷新缩略图。这可能很好的解决你的问题,和这里的原因:

报价MSDN's documentation for Image.GetThumbnailImage

如果图像包含嵌入 缩略图,这种方法检索 嵌入的缩略图,并对其进行缩放 所要求的大小。如果图像 不包含嵌入的缩略图 图像,则此方法通过缩放主图像来创建缩略图 图像。