Обновление:
В iPhone OS 3.0+ весь API UIImagePickerController изменился. Этот вопрос и ответ следует рассмотреть 2.2. устаревший код.
При использовании UIImagePickerController и вы разрешаете редактирование изображения. IPhone позволяет пользователю изменять размер и панорамировать изображение. Тем не менее, максимальный размер редактируемого изображения ограничен 320x320.
В качестве примера я сделал снимок экрана iPhone и поместил его в библиотеку фотографий размером 480x320 png. Когда я использую UIImagePickerController для выбора этого изображения, даже если я НЕ масштабирую или панорамирую изображение, оно обрезается до 320x320, прежде чем оно будет возвращено из UIImagePickerController. Однако, если я выключу редактирование, изображение вернется к нужному размеру 480x320.
Моя теория:
Очень тонко, iPhone отображает 2 нестандартных полупрозрачных панели инструментов, которые накладываются на изображение. Эти панели инструментов оставляют безобидное 320x320 «окно» над фотографией. Мне кажется, что это окно эффективно обрезает основную фотографию.
Примечание:
Обратный вызов также возвращает словарь редактирования с исходным изображением и прямоугольником отсечения, но, конечно, прямоугольник также имеет максимальный размер 320x320.
Есть ли идеи о том, как разрешить масштабирование и панорамирование изображений размером более 320x320?
Код:
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)img editingInfo:(NSDictionary *)editInfo {
self.myImageView.userInteractionEnabled=YES;
CGRect imageFrame = myImageView.frame;
CGPoint imageCenter = myImageView.center;
imageFrame.size = img.size;
myImageView.frame = imageFrame;
self.myImageView.image = img;
myImageView.center = imageCenter;
[self dismissModalViewControllerAnimated:YES];
[self performSelector:@selector(hideToolBars) withObject:nil afterDelay:2.0];
}