|
- Application Kit-
NSImage
Application Kit - NSImage
画像を表示する
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 - NSImage
画像を半透明で表示する
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 - NSImage
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 を取得してそのファイルに書き出せばオッケーだ。
|