2009-06-13 3 views
1

Я использую контроллер выбора изображений, чтобы получить изображение от пользователя. После некоторых операций с изображением я хочу, чтобы пользователь мог сохранить изображение с разрешением 1600x1200 px, 1024x1024 px или 640x480 px (что-то вроде приложения iFlashReady).iPhone - сохранить изображение в высоком разрешении без пикселизации

Последний вариант является размер изображения я получаю в методе UIImagePickerControllerDelegate (при использовании изображения с камеры ролл)

Есть ли способ, мы можем сохранить изображение на этих разрешениях без pixelating изображения?

Я попытался создать контекст растрового изображения с шириной и высотой, которую я хочу (CGBitmapContextCreate) и нарисовать изображение там. Но изображение становится неровным на 1600x1200.

Благодаря

ответ

2

Это нетривиально. На вашем изображении просто недостаточно данных. Чтобы увеличить его, вам нужно будет перепрограммировать изображение и интерполировать между пикселями (например, фотошоп при изменении размера изображения).

Скорее всего, вы будете хотеть использовать 3rd библиотеку партии, такие как:

http://code.google.com/p/simple-iphone-image-processing/

Это выполняет это и много других функций обработки изображений.

+0

Я видел код, но не нашел такое решение для более высокого разрешения. – Hiren

1

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

1

Перед нанесения попытайтесь настроить свое сглаживание CGBitmapContext и/или качество интерполяции:

CGContextSetShouldAntialias(context, 1 == 1)

CGContextSetInterpolationQuality(context, kCGInterpolationHigh) ;

Если я правильно помню, сглаживание выключено CGContext по умолчанию.

Смежные вопросы