iOS浏览器在没有下采样的情况下显示的图像最大尺寸是多less?
标题说的是什么; 基本上,如果您在iOS浏览器(例如iPhone)中显示图像,当图像尺寸超过一定的限制时,图像将以原始分辨率的一小部分进行缩减采样并显示(即1/n
像素数的原始)。
这是我猜测,一种避免因内存不足而导致图像尺寸变得过大的浏览器崩溃的方法。
我的问题是,在WebView(或浏览器)开始每隔n个像素开始采样之前,图像尺寸的上限是多less?
示例:显示5760×1800图像时,在浏览器中将其缩小为1440×450(比例为1:4)。
刚刚完成了一些testing,看起来iOS(至less在iOS 4.2.1的iPhone 3GS上)会在图像达到1024像素的极限时下采样。 任何高于这个尺寸的图像都会以每个第n个像素为单位对像素进行采样,其中n是产生<= 1024px的维度的最小除数。
出于某种原因Safari手机正在减小尺寸,但感谢有一种方法来强制在CSS中的实际大小使用:
-webkit-background-size: widthpx heightpx; -webkit-background-size:980px 2574px; /* (simply put in the exact size of the wrapper image) */
最初在这里find: http : //srihosting.com/blog/web-development/ios-safari-background-image-size-problem/
根据苹果文档,JPEG和其他文件格式有一点区别。
- 对于GIF,PNG和TIFF,如果设备的RAM低于256MB,则最大尺寸为3百万像素。 如果设备超过256MB,则限制为500万像素。
- 对于JPEG,最大尺寸始终为2百万像素。
所以一个JPEG图像最多可以有2 * 1024 * 1024像素(2'097'152)。
如果我是正确的,这里是find最大图像尺寸所需的math:
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资源限制”部分)