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

本文关键字:图像 旋转 略图 加载 | 更新日期: 2023-09-27 17:50:17

我正在编写一个程序,在处理它们之前,我必须先加载缩略图图像。

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来旋转图像:看看这个线程,并刷新缩略图。这可能很好地解决了您的问题,原因如下:

引用MSDN的Image文档。GetThumbnailImage:

如果图像包含嵌入的缩略图图像,此方法检索嵌入缩略图并缩放它到请求的大小。如果图像不包含嵌入的缩略图图像,这个方法创建一个缩略图缩放主图像