none
Metro下怎么更改图片分辨率 RRS feed

  • 问题

  • 如题,我需要将图片根据屏幕分辨率来进行保存,在metro下不知道有没方法可以实现

    • 已移动 ThankfulHeart 2012年5月21日 6:55 Metro开发 (发件人:.NET Framework 一般性问题讨论区)
    • 已编辑 Leo06053308 2012年5月22日 6:54
    2012年5月21日 6:20

答案

  • 图片分别率取决于本身图片的DPI和气大小,如果说都是标准96DPI的,那么分辨率在这里的改变只是大小上的变化。完全可以在显示图片的时候直接修改其展现大小就可以了。 但是你要改变图片本身大小,就需要重新编码生成新的大小的图片。

    在 BitmapDecoder和BitmapEncoder 中,通过BitmapTransform可以应用一些变换来达到效果。


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    2012年5月24日 3:38
    版主

全部回复

  • 所以你的问题是怎么才能知道当前屏幕分辨率,参考这个帖子: http://social.msdn.microsoft.com/Forums/zh-CN/metroappzhcn/thread/80fea545-47ce-4a29-801a-e94ab860e4e4

    通过主页面的宽高来获得。 因为Metro都要在全屏模式下运行,所以主页面的大小可以体现屏幕分辨率。
     
    通过 CoreWindow.Bounds  也可以获得,而且你还可以通过  CoreWindow.SizeChanged 事件来获得大小改变的通知。


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    2012年5月23日 7:57
    版主
  • 不是这个意思,我的意思是在metro下更改图片的分辨率。比如原先图片分辨率为1920*1200,而屏幕分辨率为1280*1024,将图片分辨率改为1280*1024,我是通过BitmapDecoder和BitmapEncoder来解决

    2012年5月23日 8:27
  • 图片分别率取决于本身图片的DPI和气大小,如果说都是标准96DPI的,那么分辨率在这里的改变只是大小上的变化。完全可以在显示图片的时候直接修改其展现大小就可以了。 但是你要改变图片本身大小,就需要重新编码生成新的大小的图片。

    在 BitmapDecoder和BitmapEncoder 中,通过BitmapTransform可以应用一些变换来达到效果。


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    2012年5月24日 3:38
    版主