none
wpf Image控件显示图片倒立 RRS feed

  • 问题

  • 我有张手机拍照的图片预览的是时候是正立的,放到wpf的Image控件显示确实倒立的。

    http://chuantu.biz/t2/10/1434609554x-1376436588.jpg  这是我上传的那张图片

    如何使图片一直正立显示呢 谢谢

    这个问题我没注意往windows商店应用论坛发了

    有人是这么回答的:

    {Image是控件,不是一个完整的应用,所以你需要首先对图像文件进行处理。首先得判断文件是不是jpg或tif文件,如果是再检查元数据,然后根据元数据自己去进行旋转。Image控件不回去处理元数据的。

    这个是Windows商店应用论坛,但你的问题中说的是WPF,所以我也不知道你的程序究竟是哪种类型。总之就是读取元数据,然后判断其中的Orientation属性。}

    2015年6月19日 2:00

答案

  • 如果出于性能考虑,你可以加载Image后,根据Orientation设置Image的LayoutTransform属性,使用RotateTransform进行旋转。

    使用LayoutTransform能够影响布局,使得图片以新的大小来适配父级容器;

    不会生成新的图片,也不会对原图片进行修改;

    对于Stretch设置为Uniform的图片,以90°倍数进行旋转时,能非常准确的调整大小,以其他角度旋转时,图片不能完美适应父级容器大小;

    旋转后,图片仍然以原方向测算大小,如200*300的图片旋转90°后因为布局原因缩小了一半,那么其大小将是100*150,而非视觉上的150*100;

    LayoutTransform能与RenderTransform并存,但不能保证互不干扰。

    2015年6月26日 3:05

全部回复

  • Windows图片查看器打开你的图片,也是倒立的。

    使用Windows图片查看器旋转你的图片至正立,会修改其数据,这时使用Image加载也会是正立的。

    jpg的方向信息,可以参考http://www.impulseadventure.com/photo/exif-orientation.html

    具体处理方式,等待大神解答吧。

    2015年6月19日 4:32
  • Windows图片查看器打开你的图片,也是倒立的。

    使用Windows图片查看器旋转你的图片至正立,会修改其数据,这时使用Image加载也会是正立的。

    jpg的方向信息,可以参考http://www.impulseadventure.com/photo/exif-orientation.html

    具体处理方式,等待大神解答吧。

    我知道图片是倒立的,现在想解决Image显示图片不管是倒立、90度翻转都能正立显示。这个就是我需要的
    2015年6月19日 5:40
  • 目前使用的方式是先获取图片的Orientation,然后旋转转换后得到新的ImageSource再设置到Image,有更好的解决方法吗?

    参考:http://blog.csdn.net/daisyhd/article/details/6000962

    2015年6月19日 8:10
  • 如果出于性能考虑,你可以加载Image后,根据Orientation设置Image的LayoutTransform属性,使用RotateTransform进行旋转。

    使用LayoutTransform能够影响布局,使得图片以新的大小来适配父级容器;

    不会生成新的图片,也不会对原图片进行修改;

    对于Stretch设置为Uniform的图片,以90°倍数进行旋转时,能非常准确的调整大小,以其他角度旋转时,图片不能完美适应父级容器大小;

    旋转后,图片仍然以原方向测算大小,如200*300的图片旋转90°后因为布局原因缩小了一半,那么其大小将是100*150,而非视觉上的150*100;

    LayoutTransform能与RenderTransform并存,但不能保证互不干扰。

    2015年6月26日 3:05