我有一个利用jQuery Mobile的移动网站,然而在iPhone 4/4S上,图片看起来很糟糕。我认为当“新iPad”在本周晚些时候推出时,情况也会是如此。
我知道这与像素比和/或图像DPI(或PPI或您想称呼它的任何东西...让我们不要讨论这个问题)有关。我只想知道为这些iOS retina显示器提供高分辨率Web图像的最佳方法是什么。
起初,我认为更改图像DPI(在Photoshop中)可以解决问题。我拍了一些样本图像,并将它们缩小到190px宽度。我将一张图像保存为72 DPI,另一张保存为200 DPI。但这没有任何效果。请自行查看(在iPhone 4/4S上):http://haxway.com/restest/1.html 每个底部的图像都是200 DPI的。
然后,我没有将高分辨率图像以200 DPI保存,而是再次将其保存为72 DPI,但这次我增加了宽度(至528px),以便在缩小到190px宽度时,它将达到约200 DPI。这似乎起了作用:http://haxway.com/restest/2.html 如果您查看源代码,可以看到我在图像标记上强制设置了宽度/高度(
然而,我并不确定这是最佳解决方案。使用宽度/高度属性来缩放图像是否会影响呈现性能,因为设备必须缩放图像而不是仅加载它(并且不再进行任何操作)?
经过一些研究,看起来有一些CSS媒体查询,比如
我知道这与像素比和/或图像DPI(或PPI或您想称呼它的任何东西...让我们不要讨论这个问题)有关。我只想知道为这些iOS retina显示器提供高分辨率Web图像的最佳方法是什么。
起初,我认为更改图像DPI(在Photoshop中)可以解决问题。我拍了一些样本图像,并将它们缩小到190px宽度。我将一张图像保存为72 DPI,另一张保存为200 DPI。但这没有任何效果。请自行查看(在iPhone 4/4S上):http://haxway.com/restest/1.html 每个底部的图像都是200 DPI的。
然后,我没有将高分辨率图像以200 DPI保存,而是再次将其保存为72 DPI,但这次我增加了宽度(至528px),以便在缩小到190px宽度时,它将达到约200 DPI。这似乎起了作用:http://haxway.com/restest/2.html 如果您查看源代码,可以看到我在图像标记上强制设置了宽度/高度(
<img src="w4.jpg" alt="" width="190" height="143">
)。然而,我并不确定这是最佳解决方案。使用宽度/高度属性来缩放图像是否会影响呈现性能,因为设备必须缩放图像而不是仅加载它(并且不再进行任何操作)?
经过一些研究,看起来有一些CSS媒体查询,比如
-webkit-min-device-pixel-ratio
[1],可以在高分辨率显示器上使用不同的CSS,从而在CSS中加载更高分辨率的图像。但我需要针对HTML <img>
标签进行定位。我读过另一篇文章(抱歉,我丢失了链接),建议使用JavaScript将“常规”图像替换为高分辨率图像。那听起来太疯狂了!
有更好的方法吗?我意识到每种方法可能会有不同的意见。如果可以解释每种方法的优缺点,那就太好了!我的目标是使用任何能够最快地呈现的方法(希望不使用某些hacky JavaScript等)。
谢谢!