Лучшее качество изображения из UIGraphicsGetImageFromCurrentImageContext()

В настоящее время я использую UIGraphicsGetImageFromCurrentImageContext(), чтобы сохранить изображение контента в рулоне камеры пользователя, но качество изображения хуже, чем если бы я сделал снимок экрана в симуляторе. Есть ли способ улучшить его? И в каком формате сохраняется сохраненное изображение? Bmp? Есть ли способ изменить это?

Здесь мой код сохранения:

CGSize size = [content bounds].size;
UIGraphicsBeginImageContext(size);
[[content layer] renderInContext:UIGraphicsGetCurrentContext()];
UIImage *originalImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

UIImageWriteToSavedPhotosAlbum(originalImage, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);

Ответ 1

Вместо использования UIGraphicsBeginImageContext вы должны использовать:

UIGraphicsBeginImageContextWithOptions(size, NO, 0);

Ответ 2

Если вы находитесь на экране сетчатки, размер контекста составляет лишь половину размера "реального" изображения.

Попробуйте удвоить размер (или правильно использовать contentScaleFactor представления).