在没有质量损失的情况下保存UIImage

时间:2012-09-11 03:11:30

标签: iphone objective-c ios xcode uiimage

我的应用程序获取整个网页的屏幕截图。当它保存到相册时,图像质量会受到影响,静止图像上的文字会模糊且难以阅读。我发现这个解决方案有望在保存到相册时具有更好的质量,但它似乎仍然不是完全可以接受的。有没有比这更好的方法来保存UIImage到相册,质量损失非常小?感谢。

UIImage* img = [UIImage imageWithCGImage:screenshotImage.CGImage];
NSData* imdata =  UIImagePNGRepresentation ( img );
UIImage* image = [UIImage imageWithData:imdata]; // wrap UIImage around PNG representation

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

1 个答案:

答案 0 :(得分:0)

除了查看图像质量设置外,您还需要了解哪种图像格式最适合存储不同类型的图像。

我更喜欢JPG用于真实世界的图像,例如用相机拍摄的图像。 JPEG可以更好地保持高图像质量,同时实现良好的压缩效果。

如果您正在拍摄截图,其中图像的许多部分都是相同的颜色(如此网页或编程编辑器),那么我更喜欢使用PNG。 PNG将保存图像,而不会产生许多经常出现在JPEG中的脏工件,但仍会为这些类型的图像实现良好的压缩比。

上述原因与每次使用的压缩算法有关(JPEG是FFT; PNG是DEFLATE)。尝试更改图像类型以及质量设置,看看是否会产生影响。