什么';iOS浏览器在不进行下采样的情况下显示的最大图像大小是多少?

什么';iOS浏览器在不进行下采样的情况下显示的最大图像大小是多少?,ios,browser,mobile,Ios,Browser,Mobile,标题是什么;基本上,如果在iOS浏览器(比如iPhone)中显示图像,当图像尺寸超过某个限制时,图像将进行下采样,并以原始分辨率的一小部分显示(即1/n原始图像的像素数) 我猜,这是一种避免因内存不足而导致图像尺寸过大时浏览器崩溃的方法 我的问题是,在WebView(或浏览器)开始每n个像素采样之前,图像尺寸的上限是多少 示例:当显示5760×1800的图像时,它在浏览器中被降采样为1440×450(比例为1:4)。刚刚完成了一些测试,似乎iOS(至少在iOS 4.2.1的iPhone 3GS上

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

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

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


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

刚刚完成了一些测试,似乎iOS(至少在iOS 4.2.1的iPhone 3GS上)在图像达到1024px限制时会对图像进行降采样。任何超过此大小的图像都会按第n个像素对其像素进行采样,其中n是生成维度的最小除数,出于某种原因,Safari mobile正在减小大小,但幸亏有一种方法可以使用以下方法强制css中的实际大小:

-webkit-background-size: widthpx heightpx;

-webkit-background-size:980px 2574px; 
/* (simply put in the exact size of the wrapper image) */
最初在这里发现:

根据苹果的文档,JPEG和其他文件格式之间有一点不同

  • 对于GIF、PNG和TIFF,如果设备的ram小于256MB 最大大小为300万像素。如果设备的容量超过256MB,则 限制为500万像素
  • 对于JPEG,最大大小始终为200万像素
因此,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

限制来源:(了解iOS资源限制部分)

这并不能解决下采样问题。