1

OSX アプリは JPEG 画像を読み取り、何らかの処理を行い、元の画像の圧縮率で画像を保存しようとします。

元の画像の圧縮率を取得することにつまずきました。NSImage クラスには似たようなものはありません。

NSBitmapImageRep クラスには便利なメソッドがあります:

- (void)getCompression:(NSTIFFCompression *)compressionfactor:(float *)factor

しかし、dataWithContentsOfFile で読み込まれた NSData から NSBitmapImageRep を取得すると、圧縮率はゼロになります。

CocoaでJPEG画像の圧縮率を取得するにはどうすればよいですか?

4

2 に答える 2

1

ImageMagick++ライブラリを使えば簡単です:

Image magick_image( [パス名 cStringUsingEncoding:NSUTF8StringEncoding] );
size_t compressionFactor = magick_image.quality(); // 0..100

これは、Objective-C++ として知られる Objective-C と C++ の混合です。名前が示すように、Magick++ は C++ ライブラリであり、C ライブラリ ImageMagick のラッパーです。上記のコード スニペットでは、Image は Magick++ ライブラリの C++ クラスです。pathname は NSString Objective-C クラスのオブジェクトです。

于 2012-10-15T00:22:03.343 に答える