问题描述
|
我正在编写一个程序,在该程序中必须先加载缩略图图像,然后再进行处理。
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文档:
如果图像包含嵌入式
缩略图,此方法检索
嵌入的缩略图并对其进行缩放
到要求的尺寸。如果图像
不包含嵌入式缩略图
图片,此方法创建缩略图
通过缩放主图像