Mac アプリケーション用に、Java から Objective C に移行しています。画面共有アプリです。
分析すると、Objective C を使用して作成されたイメージのサイズは、Java を使用して作成されたイメージよりも大きいことがわかりました。デスクトップおよびその他の画像ウィンドウには JPEG を使用し、ブラウザー/エクスプローラー ウィンドウには 8 ビット PNG を使用する予定です。どちらの形式でも、Java の方が優れています (つまり、画像サイズが小さい)。
例: 圧縮率 0.6 の JPEG 画像を作成すると、Java を使用して作成した画像のサイズは 103KB になります。同じイメージを、Objective C を使用して作成すると、201KB になります。
Objective C を使用して作成された画像が Java を使用して作成された画像と同じかそれ以下になるように画像サイズを最適化する方法はありますか?
Objective C コードを使用
NSSize imageSize = [image size]; [image lockFocus]; NSRect imageRect =
NSMakeRect(0, 0, imageSize.width, imageSize.height); NSBitmapImageRep*
myBitmapImageRep = [[NSBitmapImageRep alloc]
initWithFocusedViewRect:imageRect]; [image unlockFocus]; NSDictionary*
options = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithDouble:imageCompression], NSImageCompressionFactor,
[NSNumber numberWithBool:NO], NSImageProgressive,
nil]; NSData* imageData = [myBitmapImageRep representationUsingType:fileType
properties:options];