我需要能够在运行时压缩 PNG 文件,但找不到任何支持 iOS 的库可以做到这一点。JPEG 不适合我,因为我需要 PNG 提供的 Alpha 通道,而 JPEG 不需要。将 PNG crush 变成我可以在我的 iOS 项目中使用的东西可能超出了我的 C 技能/知识集。
为了更加清楚,我需要在运行时执行此操作,而不是编译时。
我需要能够在运行时压缩 PNG 文件,但找不到任何支持 iOS 的库可以做到这一点。JPEG 不适合我,因为我需要 PNG 提供的 Alpha 通道,而 JPEG 不需要。将 PNG crush 变成我可以在我的 iOS 项目中使用的东西可能超出了我的 C 技能/知识集。
为了更加清楚,我需要在运行时执行此操作,而不是编译时。
试试 ImageIO。请参阅ImageIO 编程指南
如果你真的没有其他办法,也许你可以使用UIImagePNGRepresentation
这样的方式来保存一个更薄的 png 文件:
// load image from the one you created
UIImage *image = [UIImage imageNamed:@"your image name"];
// give it a new PNG representation from the API
NSData *pngImage = UIImagePNGRepresentation(image);
//save it to another place
NSError *error = nil;
[pngImage writeToFile:@"your path" options:NSDataWritingAtomic error:&error];
然后看看新图像是否更薄。此方法适用于 Mac:只需打开 PNG 文件并将其导出到另一个 PNG 文件即可减小其大小。
你试过UIImagePNGRepresentation
吗?