Изменение размера изображений iPhone SDK - PullRequest
0 голосов
/ 10 июня 2011

Я работаю над приложением для iOS, которое использует iDevice Camera для захвата изображений и загрузки их на удаленный сервер. Существует сценарий, в котором пользователь может получить изображение с помощью камеры, выбрать определенную часть изображения с помощью встроенного элемента управления камерой и использовать его. Пользователь также может использовать полное изображение без выбора определенной части.

Теперь дело в том, что в основном есть два типа устройств:

  • iPhone / iTouch 2G, 3G, 3GS
  • iPhone / iTouch 4

Также будут различия в разрешении изображения с камеры.

Вопрос в том, должны ли мы удвоить разрешение нашего требуемого размера, чтобы получить изображение, которое может быть правильно отображено на обоих типах устройств, или мы можем иметь общий размер, который будет работать на обоих? Если будет общий размер, что это будет?

Ответы [ 2 ]

0 голосов
/ 10 июня 2011

Изображение любого размера будет «работать» на обоих устройствах - там, где это действительно важно, это производительность и эффективность. Например, если вы показываете эти изображения в виде таблицы с прокруткой, вы не хотите, чтобы устройства, не поддерживающие сетчатку, загружали и рисовали огромное уменьшенное изображение, иначе представление вашей таблицы будет сильно зависать.

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

Например: скажем, пользователь захватывает изображение 200x200. Вы хотите, чтобы изображение (при загрузке) отображалось в виде изображения 50x50. Вы хотите, чтобы удаленный сервер предоставлял изображение 100 пикселей для дисплеев сетчатки и изображение 50 пикселей для дисплеев без сетчатки. Каждое устройство должно запрашивать изображение соответствующего размера для разрешения своего устройства. Представление изображения может обрабатывать масштабирование, и каждый будет выглядеть плавно, а скорость загрузки и производительность приложения должны быть оптимальными.

Если вы хотите сохранить еще большую пропускную способность, в описанном выше сценарии вы можете уменьшить изображение до 100x100 перед отправкой. Вот несколько полезных советов:

https://stackoverflow.com/questions/1282830/uiimagepickercontroller-uiimage-memory-and-more

0 голосов
/ 10 июня 2011

Я не уверен, что четко понимаю ваш вопрос, но если вы хотите отобразить свое изображение, вы можете использовать такой код:

UIImage* myImage = [UIImage imageNamed:@"my_image.png"];
UIImageView *myImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
myImageView.image = myImage;
[self.view addSubView:myImageView];

Это будет отображать ваше изображение на весь экран.Если вы запустите этот код на iOS 4, он автоматически адаптируется к разрешению iPhone 4.

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