HMDT - Logic and Intuition -

about HMDT

Cocoa Programming Tips 1001

Application Kit

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 を取得してそのファイルに書き出せばオッケーだ。

back to top content

Copyright © 2002-2006 HMDT. All rights reserved.