Retina中的像素化图像显示

时间:2015-12-12 18:27:41

标签: calayer retina-display image-scaling

我正在开发一个应用程序,我在所有设备中使用@ 1x的图像(它们是照片,我无法获得它们的@ 2x版本)。当Retina显示器以300x225点(即600x450像素)显示300x225像素图像时,我希望它看起来像非视网膜设备。但这不是我得到的。视网膜设备中的图像看起来更糟糕。

这是它在非视网膜设备中的样子:

enter image description here

这就是Retina设备的外观:

enter image description here

好的,但现在让我们看一下当我稍微改变一下框架时它在Retina设备中的外观,例如至301x225或299x225像素。图像看起来更好,它不是视网膜质量(当然)但它肯定看起来不像素化:

enter image description here

Apple似乎使用不同的缩放算法,具体取决于缩放图像的程度。如果必须使用比例因子2,则使用与1.99,2.01或任何其他值相比的不同缩放内插。但为什么?在真正的视网膜设备中,缩放为2.01的图像看起来比在2处缩放的图像更好。也许是强制开发人员包含视网膜图像?

你知道一种方法来强制图像使用"更平滑的"缩放插值方法?我可以设置一个稍微不同的框架,使其不是原始图像大小的两倍,但是......有更好的方法吗?我还试图更改CALayer magnificationFilterminificationFilter,但Retina设备上的图片仍然看起来更糟。

编辑:我一直在玩Photoshop,我可以说,当缩放系数为2.0时,Apple会使用最近邻,当缩放系数时与2.0不同,使用 Bicubic 算法。我可以用Photoshop创建@ 2x版本的图像(使用Bicubic)并将它们添加到我的应用程序中,但这会大大增加我的应用程序的文件大小。

1 个答案:

答案 0 :(得分:0)

您可以使用最大的图像并将其指定为其大小的一半。因此,请上传图片(600x450)并将其用作<img src="blabla.jpg" style="width:300px;height:225px;" alt="" />

这是一篇描述视网膜显示和网页设计的好文章:http://designmodo.com/design-retina-displays/