积极答复者
wpf Image控件显示图片倒立

问题
-
我有张手机拍照的图片预览的是时候是正立的,放到wpf的Image控件显示确实倒立的。
http://chuantu.biz/t2/10/1434609554x-1376436588.jpg 这是我上传的那张图片
如何使图片一直正立显示呢 谢谢
这个问题我没注意往windows商店应用论坛发了
有人是这么回答的:
{Image是控件,不是一个完整的应用,所以你需要首先对图像文件进行处理。首先得判断文件是不是jpg或tif文件,如果是再检查元数据,然后根据元数据自己去进行旋转。Image控件不回去处理元数据的。
这个是Windows商店应用论坛,但你的问题中说的是WPF,所以我也不知道你的程序究竟是哪种类型。总之就是读取元数据,然后判断其中的Orientation属性。}
答案
-
如果出于性能考虑,你可以加载Image后,根据Orientation设置Image的LayoutTransform属性,使用RotateTransform进行旋转。
使用LayoutTransform能够影响布局,使得图片以新的大小来适配父级容器;
不会生成新的图片,也不会对原图片进行修改;
对于Stretch设置为Uniform的图片,以90°倍数进行旋转时,能非常准确的调整大小,以其他角度旋转时,图片不能完美适应父级容器大小;
旋转后,图片仍然以原方向测算大小,如200*300的图片旋转90°后因为布局原因缩小了一半,那么其大小将是100*150,而非视觉上的150*100;
LayoutTransform能与RenderTransform并存,但不能保证互不干扰。
- 已标记为答案 Xavier Xie-MSFTModerator 2015年6月30日 8:10
全部回复
-
Windows图片查看器打开你的图片,也是倒立的。
使用Windows图片查看器旋转你的图片至正立,会修改其数据,这时使用Image加载也会是正立的。
jpg的方向信息,可以参考http://www.impulseadventure.com/photo/exif-orientation.html
具体处理方式,等待大神解答吧。
-
Windows图片查看器打开你的图片,也是倒立的。
使用Windows图片查看器旋转你的图片至正立,会修改其数据,这时使用Image加载也会是正立的。
jpg的方向信息,可以参考http://www.impulseadventure.com/photo/exif-orientation.html
具体处理方式,等待大神解答吧。
-
如果出于性能考虑,你可以加载Image后,根据Orientation设置Image的LayoutTransform属性,使用RotateTransform进行旋转。
使用LayoutTransform能够影响布局,使得图片以新的大小来适配父级容器;
不会生成新的图片,也不会对原图片进行修改;
对于Stretch设置为Uniform的图片,以90°倍数进行旋转时,能非常准确的调整大小,以其他角度旋转时,图片不能完美适应父级容器大小;
旋转后,图片仍然以原方向测算大小,如200*300的图片旋转90°后因为布局原因缩小了一半,那么其大小将是100*150,而非视觉上的150*100;
LayoutTransform能与RenderTransform并存,但不能保证互不干扰。
- 已标记为答案 Xavier Xie-MSFTModerator 2015年6月30日 8:10