NSImage

NSImage

Application Kit - NSApplication

画像を表示する

Keywords: compositeToPoint

Cocoa では、画像は NSImage のサブクラスとして取り扱うんだ。NSImage を画面に表示するときは、compositeToPoint:operation: を使う。

Application Kit/NSImage.h

- (void)compositeToPoint:(NSPoint)point
 operation:(NSCompositingOperation)operation;

これを使えば、簡単に画像が描ける。

(sample)

- (void)drawRect:(NSRect)rect
{
 NSImage* image;
 NSPoint point = { 0, 0 };

 ...
 // 画像を取得
 ...

 [image compositeToPoint:point operation:NSCompositeSourceOver];
}

operation に NSCompositeSourceOver を指定すると、上の画像の透明なところは、下の画像が透けるようになるんだ。


Application Kit - NSApplication

画像を半透明で表示する

Keywords: dissolveToPoint

Mac OS X の GUI の特徴のひとつは?それはもちろん、半透明の多用(乱用?)でしょう。というわけで、画像の半透明表示をやってみよう。NSImage には、半透明で表示するための dissolveToPoint というメソッドがあるんだ。

Application Kit/NSImage.h

- (void)dissolveToPoint:(NSPoint)point fraction:(float)float;

これを使えば一発!

(sample)

- (void)drawRect:(NSRect)rect
{
 NSImage* image;
 NSPoint point = { 0, 0 };

 ...
 // 画像を取得する
 ...

 [image dissovbeToPoint:point fraction 0.5f];
}





Application Kit - NSApplication

TIFF で保存する

Keywords: TIFFRepresentation

ある NSImage ができているとき、その内容を TIFF フォーマットで保存することができるんだ。Cocoa では TIFF が標準フォーマットみたいに扱われている。TIFFRepresentation を使う。

Application Kit/NSImage.h

- (NSData *)TIFFRepresentation;

これを使うと、現在の画像を NSData 型で取得できるんだ。その後は、NSData の writeToFile: を使って、好きなところに保存すればいい。

(sample)

- (void)saveAsTIFF:(NSImage*)image
{
 NSData* data;
 NSMutableString* path;

 path = [NSMutableString stringWithString:NSHomeDirectory()];
 [path appendString:@"/test.tiff";

 data = [image TIFFRepresentation];
 [data writeToFile:path atomically:YES];
}

最初に、ホームディレクトリの下への適当なファイルパスを作る。そして、NSData を取得してそのファイルに書き出せばオッケーだ。




Application Kit