在iOS中以编程方式压缩PNG图像
Posted
技术标签:
【中文标题】在iOS中以编程方式压缩PNG图像【英文标题】:Compressing PNG image programmatically in iOS 【发布时间】:2014-11-17 17:25:02 【问题描述】:我需要将 300DPI 且大小正好为 1275x1875 像素的 png 图像发送到服务器。因为默认情况下 UIKit 将创建具有 72DPI 的图像,我需要在 UIKit 函数UIGraphicsBeginImageContextWithOptions 中将比例因子设置为 300/72 才能获得 300DPI 图像,之后我使用 UIImagePNGRepresentation 函数获取图像的 NSData 并编写它在文件中。现在我可以获得所需的图像大小和 DPI(已在 Photoshop 中检查),但它几乎变成了 5mb。有没有办法在 ios 中减小 PNG 图像的大小?
提前致谢!
【问题讨论】:
【参考方案1】:如果您需要压缩,为什么不将这些图像以 JPEG 格式发送呢?
NSData * UIImageJPEGRepresentation ( UIImage *image, CGFloat compressionQuality );
将compressionQuality 设置为0f 表示最高压缩,1f 表示最低。需要 PNG 时转换回 PNG。
【讨论】:
这不是一个解决方案,因为这个功能使我的图像 72DPI,但我需要它是 300DPI 所以在后端将jpg转换为300dpi的PNG文件。 “DPI”在您在这里介绍的上下文中没有多大意义。 后端不是我的,它需要300DPI,所以我必须在设备中这样做以上是关于在iOS中以编程方式压缩PNG图像的主要内容,如果未能解决你的问题,请参考以下文章
如何在Swift中以编程方式从另一个图像中剪切徽标的形状(png图像)?