即使是大图像,加载的缩略图也不会旋转
问题描述:
我正在编写一个程序,在处理它们之前必须先加载缩略图图像。即使是大图像,加载的缩略图也不会旋转
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:
如果图像包含嵌入 缩略图,这种方法检索 嵌入的缩略图,并对其进行缩放 所要求的大小。如果图像 不包含嵌入的缩略图 图像,则此方法通过缩放主图像来创建缩略图 图像。