使用UIImageWriteToSavedPhotosAlbum控制图像质量

时间:2012-06-13 05:46:16

标签: objective-c image cocoa-touch uiimage

我正在使用以下代码将当前屏幕保存到照片库:

UIGraphicsBeginImageContext(self.view.bounds.size);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage* result = UIGraphicsGetImageFromCurrentImageContext();     
UIGraphicsEndImageContext();
UIImageWriteToSavedPhotosAlbum(result, nil,nil, nil);

这很有效,但质量看起来很像压缩的JPG(保存的文件名是标准的IMG_XXXX.JPG格式),即使此代码中没有指定图像的类型或质量。有没有办法控制质量?即我可以将它保存为未压缩的PNG吗?

1 个答案:

答案 0 :(得分:2)

您可以使用UIImagePNGRepresentation() NSData方法将其另存为PNG,请执行以下操作:

....
UIImage* result = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
NSData* data =  UIImagePNGRepresentation ( result );
UIImage* pngImage = [UIImage imageWithData:data];
UIImageWriteToSavedPhotosAlbum(pngImage, nil, nil, nil);

希望这有帮助。