Ограничения размера изображения в мобильном сафари? - PullRequest
5 голосов
/ 17 июля 2011

Я работаю над приложением для iOS, используя PhoneGap. Я столкнулся с досадной проблемой, когда некоторые из моих изображений не загружались. Думая, что это была проблема с кешем, я обменивался изображениями.

Я наконец обнаружил, что проблема связана с высотой моего изображения. После целого ряда проб и ошибок я обнаружил, что изображение выше 7864 пикселей не будет загружаться в симулятор iPad или сам iPad. Он будет нормально загружаться в Safari. Это не ограничение по размеру файла, так как они размером всего 45 КБ, и я загружаю изображения размером 700 КБ в другом месте без проблем.

Кто-нибудь сталкивался с этим? Я не могу найти никаких задокументированных ограничений на размеры изображения в мобильном Safari. Если есть ограничения, знать их было бы удобно.

1 Ответ

5 голосов
/ 17 июля 2011

Для родных приложений Apple говорит, что изображения, размер которых больше 2048x2048 1024x1024, следует избегать и их следует разбивать на более мелкие.Проблема здесь не в размере файла на диске, а в размере памяти: изображение должно быть декодировано и превращено в «плоское» представление.

Итак, давайте сделаем некоторую математику: предположим, изображение 5000x5000 пикселей,с 8-битным RGB.Это означает, что каждый пиксель занимает 3 байта:

5000 *5000* 3 = 75 000 000 (примерно 71,5 МБ)

Итак, вы видите, что ваше, казалось бы, маленькое изображение действительно заполняет памятьочень быстро.iOS теперь не может выбрасывать части, если они находятся под давлением памяти, это целое изображение или ничего.

Ваше единственное решение - разбить изображение на более мелкие части.iOS может затем удалить изображения, которые больше не видны из памяти (я сомневаюсь, что такое огромное изображение, что все части видны все время).

...