iphone - 保存没有质量损失的 UIImage

标签 iphone objective-c ios xcode uiimage

我的应用截取整个网页的屏幕截图。当它保存到相册时,图像质量有点下降,静止图像上的文字模糊不清,难以阅读。我发现这个解决方案 promise 在保存到相册时具有更好的质量,但它似乎仍然不是完全可以接受的。有没有比这更好的方法来以最小的质量损失将 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);

最佳答案

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

对于真实世界的图像,例如用相机拍摄的图像,我更喜欢 JPG。 JPEG 在保持高图像质量和实现良好压缩方面做得更好。

如果您要截取图像的很多部分都是相同颜色的屏幕截图(例如此网页或您的编程编辑器),那么我更喜欢使用 PNG。 PNG 将保存图像而不会产生 JPEG 中经常出现的许多脏东西,但仍将为这些类型的图像实现良好的压缩率。

上述原因与各自使用的压缩算法有关(JPEG 是 FFT;PNG 是 DEFLATE)。尝试更改图像类型和质量设置,看看是否有所不同。

关于iphone - 保存没有质量损失的 UIImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12362220/

相关文章:

iphone - 如何使用 Bit.ly 缩短自定义网址?

ios - 四种设计模式组合——Objective C 示例代码?

ios - UNNotificationAction 未显示在远程通知中

ios - NSURLSessionUploadTask 后台持续上传

ios - 在单个设备 (iPhone) 上运行具有相同配置文件的多个应用程序

iphone - iOS:在不添加新 View 的情况下在 UIScrollView View 之间切换?

iphone - 超过 1 个部分的自定义背景 uitableview (IPHONE)

ios - identifierForVendor.UUIDString 在不同的应用程序中生成相同的 Id

ios - 在所选类型的标签栏项目上设置角标(Badge)(不知道其索引)

iphone - 将自定义运行循环与 libdispatch 集成