来自UIGraphicsGetImageFromCurrentImageContext()的更高质量的图像

时间:2013-08-03 07:07:33

标签: ios objective-c core-graphics

我目前正在使用 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);

2 个答案:

答案 0 :(得分:46)

而不是使用UIGraphicsBeginImageContext,您应该使用:

UIGraphicsBeginImageContextWithOptions(size, NO, 0);

答案 1 :(得分:0)

如果你在视网膜显示器上,上下文的大小只是“真实”图像大小的一半。

尝试加倍大小(或者正确使用视图的contentScaleFactor)。