在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图像)?

在 .net 中以编程方式解压缩文件

在 iOS 中以编程方式在标签栏上添加图像

在表格视图单元格中以编程方式显示图像

如何在 ios 4 中以编程方式将图像数组添加到 Imageview?

在 iOS 中以编程方式将图像集添加到 images.xcassets 目录?