我有一个 HTML 页面,其中包含 1675 像素 x 2640 像素的图像。我尝试在 iPad 上查看它,显然移动 safari 对图像进行了下采样。我们想展示高质量的图像,但 safari 限制了这一点。
我一直在寻找保留图像大小的解决方案。我一直在移动 safari 上的 iPad 3 上查看它。人们建议使用其他浏览器,但默认情况下我们使用的是移动 Safari。
是否有任何 CSS、JavaScript 或其他解决方案来解决此限制?
我有一个 HTML 页面,其中包含 1675 像素 x 2640 像素的图像。我尝试在 iPad 上查看它,显然移动 safari 对图像进行了下采样。我们想展示高质量的图像,但 safari 限制了这一点。
我一直在寻找保留图像大小的解决方案。我一直在移动 safari 上的 iPad 3 上查看它。人们建议使用其他浏览器,但默认情况下我们使用的是移动 Safari。
是否有任何 CSS、JavaScript 或其他解决方案来解决此限制?
我敢肯定你会喜欢这个答案,但简短的答案似乎是:“你不会得到 1:1 的大尺寸图像”。
稍长一点的答案是,Apple 故意强迫事情以这种方式工作,因为在它的工作方式之前,它只是根本不加载图像,或者崩溃。
现在,对于引用的更完整的答案......
问题是,当图像被解码/解压缩时,它占用的 RAM 空间比图像文件大小要多得多。Apple 声明的公式是具有 512mb RAM 的设备,例如您提到的 ipad 3,将拒绝 5 兆像素以上的非 JPEG 图像,这会导致:
height * width <= 5 * 1024*1024
对于 JPEG,Apple 指出他们将进行二次采样以允许您查看 jpeg:
JPEG 的最大解码图像大小为 32 兆像素,使用二次采样。由于二次采样,JPEG 图像最高可达 32 兆像素,这允许 JPEG 图像解码为像素数十六分之一的大小。对大于 2 兆像素的 JPEG 图像进行二次采样,即解码为缩小的尺寸。JPEG 二次采样允许用户查看来自最新数码相机的图像。
请注意,它指出 2 兆像素是 JPEG 全尺寸查看的限制,即 2*1024*1024。由于您的图像大约略超过 4 兆像素,它将在 iPad 3 上进行二次采样。不,如果不使用外部程序,您真的无法强制它。
要使用外部程序进行最小改进,请参阅此链接,其中有人推荐 GoodReader:Apple 论坛,在 MiniSfari 中寻求完整图像分辨率
这是另一个具有类似问题/答案对的 Stackoverflow:Mobile Safari 中的图像大小限制
Mobile Safari 不会对渐进式JPEG 进行下采样。假设 JPEG 是您可以接受的格式,只需将它们转换为渐进式编码。假设您有一个现有的非逐行扫描 JPEG 图像,您可以使用诸如jpegtran
无损地将编码转换为逐行扫描的工具。
要享受 iPad Retina 和 iPhone 4 / 5 的视网膜功能,请使用以下两倍大小的图像:
<img src="test.jpg" width="837" height="1320" />
注意尺寸减半,但 test.jpg 不需要调整大小。
或者,您可以准备另一组高分辨率图形,并在检测到视网膜屏幕时显示它,使用媒体查询 (Modernizr)
像素密度理论: Retina 屏幕将 2 个像素放入 1 个像素中,例如320px
宽度,它实际上包含640px
内容。在此处阅读更多信息:http ://www.sitepoint.com/css-techniques-for-retina-displays/