iOS浏览器不进行降采样的最大图像尺寸是多少?

4
标题所说的是:如果在iOS浏览器(比如iPhone)中显示图像,当图像尺寸超过一定限制时,图像会被降采样并以原始分辨率的1/n显示(即原始像素数量的1/n)。
我猜这是为了避免由于内存不足而导致图像大小变得太大而使浏览器崩溃。
我的问题是,在WebView(或浏览器)开始对每个n个像素进行采样之前,图像尺寸的上限是多少?
例如:当显示一个5760×1800的图像时,它在浏览器中被降采样为1440×450(1:4的比例)。
3个回答

5

刚刚完成了一些测试,看起来iOS(至少在iPhone 3GS上的iOS 4.2.1)会在达到1024px限制时对图像进行降采样。任何大于此大小的图像都会按每n-th像素进行采样,其中n是产生尺寸<= 1024px的最小除数。


3
根据苹果文档,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资源限制”部分)

这个链接提供了有关在Safari浏览器上创建内容时应该考虑的一些限制,以确保您的网站或应用程序在iPhone设备上运行良好。其中包括可用内存、JavaScript性能和图像大小等方面的限制。请务必在开发过程中参考这些限制,并根据需要进行优化。

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/

此文讲述了在iOS Safari浏览器上,使用CSS的background-size属性设置背景图片大小时可能会遇到的问题。在某些情况下,设置background-size为cover或contain时,背景图片的大小可能不会如预期一样进行缩放。作者提供了一个解决方案,即使用标签作为背景图片,同时通过CSS控制其大小和位置。


这并不能解决降采样的问题。 - Meekohi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接