web-dev-qa-db-ja.com

CGImageRefからNSImageを取得する

CoreGraphicsで画像を処理してから、処理した画像をNSImageに戻して保存し、表示しようとしています。 iOSでこれらの機能を実行する方法については十分なリソースがありますが、ヘルパーメソッドがNSImageにないようです。 iOSではクラスメソッドはimageWithCGImage:ですが、Mac OSでこれを行うにはどうすればよいですか?

25
MobileOverlord

NSImageのマッチング方法はinitWithCGImage:size:です。

2番目の引数は、画像のサイズをポイント単位で取得します。 (CGImageの)ピクセル単位のサイズとポイント単位のサイズの間の係数は、スケール係数です。したがって、たとえば、100×100pxのCGImageがあり、サイズが(NSSize){ 50.0, 50.0 }の場合、画像のサイズは50ポイントで、解像度は2倍になります。

通常、ポイント単位のサイズとして(CGImageからの)ピクセル単位のサイズを渡す必要があります。複数のスケールファクターを処理するには、ほとんどのタイプの-[NSWorkspace iconForFileType:]から取得するものや、一般的な.icnsファイルからNSImageを作成する場合のように、単一のNSImageと複数のNSImageRepsを使用することをお勧めします。

46
Peter Hosey