Windows Phone 8.1上的位图精确渲染像素

时间:2015-02-20 07:49:12

标签: windows-phone-8 windows-phone-8.1

我的应用程序显示固定宽度和长度的位图(地图图块)。它们覆盖了整个屏幕,我逐个像素地滚动地图。 我有两个版本的应用程序,8.0 Silverlight(容器是Canvas,地图图块是图像,8.1存储(使用Win2d库,但也测试过XAML)。

当我在Lumia 820(480x800)上运行8.0应用程序版本时,ScaleFactor为100,一切都很清晰,屏幕完全覆盖。但是,当我在720p模拟器中运行它,或者当我在Lumia上运行8.1版本(RawPixelPerViewPixel是1.0,我认为是1.2)或者在任何模拟器中,都存在问题。

图像模糊 - 我知道应用程序是缩放的,似乎我无能为力,但我的应用程序的更大问题是当我滚动地图时,瓷砖不覆盖主面板,大多数时间之间有一些空间我可以看到面板背景(截图中的红色),只有每5个地图滚动(对于RawPixelPerViewPixel = 1.2),瓷砖彼此完全相邻,背景完全被涂上。

我使用整数来定位屏幕上的图块,所以例如对于图块240x320我首先放在0,0,然后是240,0等。我怎样才能摆脱图块之间的间距?我应该从坐标切换到浮点坐标,并以某种方式使用ScaleFactor更精确地计算位置?谢谢。

8.1 emulator screenshot

1 个答案:

答案 0 :(得分:0)

所以我发现,为了避免那些子像素伪影线,即面板(我的情况下是画布)通过渲染位图之间的子像素空间显示,位图屏幕上的坐标必须是(1.0 / RawPixelsPerViewPixel)的倍数)。