Какой самый большой размер изображения отображается в браузере iOS без понижающей дискретизации? - PullRequest
4 голосов
/ 09 мая 2011

Что говорит заголовок;в основном, если вы отображаете изображение в браузере iOS (скажем, на iPhone), когда размеры изображения превышают определенный предел, изображение подвергается пониженной дискретизации и отображается с долей исходного разрешения (т. е. 1/n количество пикселейоригинала).

Это, я думаю, способ избежать сбоя браузера, когда размеры изображения становятся слишком большими из-за нехватки памяти.

Мой вопрос: чтоверхний предел размеров изображения до того, как WebView (или браузер) начнет выборку каждый n-й пиксель?

ПРИМЕР: При отображении изображения 5760 × 1800, он уменьшен до 1440 × 450 в браузере (соотношение 1: 4).

Ответы [ 3 ]

5 голосов
/ 09 мая 2011

Только что закончил несколько тестов, и кажется, что iOS (на iPhone 3GS с iOS 4.2.1 по крайней мере) уменьшает изображение, когда оно достигает предела 1024px .Любое изображение выше этого размера имеет пиксели, выбранные каждым n-м пикселем, где n - наименьший делитель, который дает измерение <= 1024px. </p>

3 голосов
/ 08 августа 2012

Согласно документации Apple, есть небольшая разница между JPEG и другими форматами файлов.

  • Для GIF, PNG и TIFF, если устройство имеет менее 256 МБ ОЗУ, максимальный размер составляет 3мегапиксель.Если размер устройства превышает 256 МБ, ограничение составляет 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»)

3 голосов
/ 08 июня 2011

По какой-то причине Safari mobile уменьшает размер, но, к счастью, есть способ установить фактический размер в 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/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...