目前我处理的问题是我有pdf文件,其中包含大量1024x768图像,并且我正在尝试优化pdf的文件大小,但我认为现在唯一的解决方案就是用jpeg压缩图像压缩。问题是我没有找到任何方法来使用iOS API。我错过了什么,有办法吗? 我欢迎提出如何使用其他方法优化pdf的建议(降低图像的分辨率对我来说不是一个好的解决方案)。
编辑:如果有人知道另一个用于在iOS上生成pdf的API - 非常感谢链接。
提前致谢。
答案 0 :(得分:6)
实际上你可以使用UIImageJPEGRepresentation。但是还有另一个步骤,然后使用JPEG数据提供程序绘制图像:
NSData *jpegData = UIImageJPEGRepresentation(sourceImage, 0.75);
CGDataProviderRef dp = CGDataProviderCreateWithCFData((__bridge CFDataRef)jpegData);
CGImageRef cgImage = CGImageCreateWithJPEGDataProvider(dp, NULL, true, kCGRenderingIntentDefault);
[[UIImage imageWithCGImage:cgImage] drawInRect:drawRect];
在绘制到PDF上下文时,这对我很有用。 0.75压缩质量使我的图像载PDF的大小减少了大约75%,并且看起来仍然很好。
答案 1 :(得分:1)
如果有人有兴趣,我通过使用免费的pdf库 - libHaru找到了我的问题的解决方案。它为我提供了将JPEG压缩图像添加到生成的pdf文件所需的功能。
答案 2 :(得分:-1)
如果您想压缩图片,可以使用UIImageJPEGRepresentation
NSData * UIImageJPEGRepresentation (
UIImage *image,
CGFloat compressionQuality
);
您可以使用
jpeg转换/压缩PNG图像NSData *someImageData = UIImageJPEGRepresentation(pngImage, 0.6); // quality 0.6 (60%) (from 0.0-1.0).
UIImage *newCompressedJPG = [UIImage imageWithData:someImageData];
但我不这么认为这会减少你的PDF尺寸。因为当您将UIImage放置到您的PDF格式时,RAW图像就会被放置(据我所知)。
更新1: 它的可压缩性从0.0到1.0不等(感谢Leena)