iOS浏览器在没有下采样的情况下显示的最大图像大小是多少?

时间:2011-05-09 10:48:07

标签: ios browser mobile

标题是什么;基本上,如果您在iOS浏览器(例如iPhone)中显示图像,当图像尺寸超过某个限制时,图像将被下采样并以原始分辨率的一小部分显示(即1/n个数字原始像素。)

我猜,这是一种避免因图像大小因内存不足而导致浏览器崩溃的方法。

我的问题是,在WebView(或浏览器)开始对每个第n个像素进行采样之前,图像尺寸的上限是多少?

示例:当显示5760×1800图像时,它会在浏览器中下采样为1440×450(比例为1:4)。

3 个答案:

答案 0 :(得分:5)

刚刚完成了一些测试,似乎iOS(至少在iPhone 3GS上使用iOS 4.2.1)在图像达到 1024px 限制时对其进行下采样。任何高于此大小的图像都会按每个 n 像素对像素进行采样,其中 n 是产生维度

答案 1 :(得分:3)

出于某种原因,Safari移动设备正在减小尺寸,但是感谢有一种方法可以使用以下方法强制css中的实际大小:

-webkit-background-size: widthpx heightpx;

-webkit-background-size:980px 2574px; 
/* (simply put in the exact size of the wrapper image) */

最初在这里找到: http://srihosting.com/blog/web-development/ios-safari-background-image-size-problem/

答案 2 :(得分:3)

根据Apple文档,JPEG和其他文件格式之间存在一些差异。

  • 对于GIF,PNG和TIFF,如果设备的内存小于256MB 最大尺寸为3百万像素。如果设备有超过256MB那么 限制是5百万像素。
  • 对于JPEG,最大尺寸始终为2百万像素。

因此JPEG图像最多可以有2 * 1024 * 1024像素(2' 097' 152)。

如果我更正,这里是找到最大图像尺寸所需的数学:

ratio = √(2 * 1024 * 1024) / √(5760 * 1800)= √2097152 / √10368000 ≈ 1448.154 / 3219.937 ≈ 0.449746
optimal_width = 5760 * ratio ≈ 2590 // it's better to approximate 1 pixel smaller
optimal_height = 1800 * ratio ≈ 809 // else the image is quickly too big since we multiply each dimensions

optimal_size = 2590 * 809 = 2095310 // less than 2097152

限制来源:https://developer.apple.com/library/safari/#documentation/AppleApplications/Reference/SafariWebContent/CreatingContentforSafarioniPhone/CreatingContentforSafarioniPhone.html("了解iOS资源限制"部分)