5

現在、1024x768の画像がたくさん含まれているPDFファイルがあり、PDFのファイルサイズを最適化しようとしているという問題に取り組んでいますが、今のところ十分だと思った唯一の解決策は、jpeg圧縮で画像を圧縮することです。問題は、iOSAPIでそれを行う方法が見つからなかったことです。私は何かが足りないのですか、方法はありますか?他の方法でPDFを最適化する方法についての提案を歓迎します(画像の解像度を下げることは私にとって良い解決策ではありません)。

編集: iOSでのPDF生成に使用する別のAPIを誰かが知っている場合は、リンクをいただければ幸いです。

前もって感謝します。

4

3 に答える 3

9

実際には、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%縮小されましたが、それでも問題はありませんでした。

于 2013-02-12T20:16:34.680 に答える
1

誰かが興味を持っているなら、私は無料のpdfライブラリ-libHaruを使って私の問題の解決策を見つけました。生成されたPDFファイルにJPEG圧縮画像を追加するために必要な機能が提供されました。

于 2012-06-01T16:00:51.430 に答える
-1

画像を圧縮したい場合は、UIImageJPEGRepresentationを使用できます

NSData * UIImageJPEGRepresentation (
   UIImage *image,
   CGFloat compressionQuality
);

PNG画像をjpeg変換/圧縮できます

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のおかげで)

于 2012-04-17T08:32:45.947 に答える