我正在使用Image.RotateFlip()来修正某些照片的方向。我阅读了每张照片的EXIF信息,然后相应地旋转/翻转图像使其直线上升。我的代码是这样的:
//get info before processing.
var imgf = img.RawFormat;
//rotate and/or flip.
img.RotateFlip(rfty);
//reset orientation info.
img.RemovePropertyItem(km_iPropertyTagOrientation);
img.RemovePropertyItem(km_iPropertyTagThumnbailOrientation);
//save fixed image to a new file.
string strFilenameNew = Path.ChangeExtension(strFilename, "temp");
img.Save(strFilenameNew, imgf);
//replace original file.
File.Delete(strFilename);
File.Move(strFilenameNew, strFilename);
如您所见,我旋转/翻转图像,删除编码旧方向的EXIF信息,最后我将其保存为相同格式并替换原始文件。
当我将照片上传到http://metapicz.com时,这就是我得到的:
到目前为止,这么好。现在,我使用Image.GetThumbnailImage()通过将其大小缩放20%来获取固定照片的缩略图。奇怪的是,生成的缩略图再次旋转!当我将其上传到http://metapicz.com时,这就是我得到的:
您可以在此处找到这组照片(来源,固定和缩略图):https://verdewek-my.sharepoint.com/personal/cesargon_verdewek_com/_layouts/15/guestaccess.aspx?folderid=0d56479242b154fb7a31ae9a96f7be9cb&authkey=AbT_VQeoKU2EoVDuhvM2RgM
知道我可能缺少什么吗?谢谢。