Преобразование изображений на Ipad или на стороне сервера - PullRequest
0 голосов
/ 17 сентября 2010

Я работаю над приложением ipad, которое должно работать с изображениями;он использует четыре разные версии каждого изображения в разных ситуациях (каждая имеет свое собственное разрешение и качество изображения).

Варианты получения изображений в приложении:

1)только оригинальное изображение.Конвертируйте изображение в несколько форматов на ipad.Потребление CPU / mem на ipad будет больше, пропускная способность будет ниже.

2) Преобразуйте изображение в несколько форматов на сервере, загрузите все варианты на ipad.Потребление CPU / mem на ipad будет низким, использование полосы пропускания будет выше, а время загрузки увеличится.

Из вашего опыта, какое из этих решений является лучшим?И будет ли ваш подход другим, если вы заранее знаете, будет ли приложение в основном использоваться через Wi-Fi или в дороге, используя 3G?

Ответы [ 3 ]

0 голосов
/ 17 сентября 2010

Поскольку вы предполагаете, что большинство людей будут использовать WiFi, я говорю изменение размера на сервере:

Во-первых, память / скорость.Несмотря на то, что вы можете создавать несколько потоков на iPad, чтобы ускорить изменение размера в несколько форматов, вы получите только то, что вам не хватает памяти.Простая загрузка одного изображения 1600x1200 легко увеличит до 40M.Несколько форматов в нескольких потоках могут привести к неприятностям (например, к гибели из-за нехватки памяти).Ваш сервер будет иметь несколько гигабайт оперативной памяти и несколько процессоров.IPad просто не собирается побеждать это.Недостатком, конечно же, является то, что вам придется поддерживать сопутствующий сайт в течение всего срока действия вашего приложения.

Во-вторых, наличие на сервере и отсутствия жесткого кодирования точных форматов в приложении для iPad даст вам больше свободы, когда вы решите что-то изменить (или исправить) в своих форматах.Изменение серверного кода, очевидно, намного проще, чем повторное развертывание приложения для iPad в App Store с небольшим изменением (и обновлением некоторых пользователей, а некоторых нет).

Я бы не стал сильно беспокоиться о пропускной способностипотребления, но обязательно запомните это, когда ваш пользователь подключен к сети 3G (используйте Reachability API).

0 голосов
/ 17 сентября 2010

Это зависит от размера изображений, не так ли?

Если вы используете действительно большие изображения, вы можете даже загрузить меньшие, а затем позволить серверу на самом деле редактировать большие изображения.с приложением для iPad, отправляющим инструкции о том, что делать с большими изображениями.

Таким образом, вы можете редактировать 14-мегапиксельные фотографии в полном разрешении на iPad - загрузите «простое» мегапиксельное изображение (ономожет быть сжат jpg), а затем сказать серверу, чтобы он обрабатывал 14 * 4 = 56 МБ * 2 или более памяти для реального процесса.

3G довольно быстрый - некоторые wifi в кофейне работают медленнее.Я бы не позволил этому беспокоить вас.

0 голосов
/ 17 сентября 2010

На мой взгляд, скачивать как можно меньше удобнее. Скорее всего, преобразование на устройстве часто намного быстрее. Особенно, когда не по WiFi или 3G, но по гораздо более медленному соединению - что часто случается со многими людьми. Это также сводит к минимуму количество / затраты на передачу данных, что может быть важным для некоторых пользователей.

Наверное, проще на стороне сервера ...

Так что, если вычисления не слишком медленные, клиент выигрывает для меня.

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