ユーザーのライブラリから写真にフィルターを適用してから、ディスクに書き戻したいと思います。を使用してUIImageJPEGRepresentation
います。この関数はと0.0 から 1.0 の間UIImage
の値を取ります。compressionQuality
元の品質を維持したいので、1.0 に設定します。しかし、これにより実際には、元のファイルサイズよりもファイルサイズが大きく、さらにかなり大きい画像ファイルが作成されることがわかりました。Apple の Sample Photo Editing Extension アプリでは、品質が常に 0.9 に設定されていることに気付きました。試してみたところ、元の写真ファイル サイズに近いファイル サイズが出力されます。これは私には意味がありません。誰かがこれを説明できますか?常に 0.9 を使用するのは適切ですか? iOS カメラはその値を使用して圧縮するので、0.9 が元の品質ですか? または、0.9 が実際には 1.0 ではないのはなぜですか。
NSData *renderedJPEGData = UIImageJPEGRepresentation(image, 0.9f);