Geometry 関数
NSBundle
NSDictionary
NSFileManager
NSMutableAttributedString
NSNumber
NSScanner
NSString
NSTimer
Graphic 関数
NSApplication
NSBezierPath
NSCell
NSColor
NSCursor
NSCustomImageRep
NSDocument
NSDocumentController
NSDragging
NSEvent
NSFontManager
NSGraphicsContext
NSImage
-画像を表示する
-画像を半透明で表示する
-TIFF で保存する
NSMenu
NSOutlineView
NSPanel
NSPopUpButton
NSResponder
NSScrollView
NSString 追加
NSTableColumn
NSTableView
NSTextStorage
NSTextView
NSToolbar
NSView
NSWindow
NSWorkspace
その他
.nib ウィンドウ
Views パレット
クラス
インスタンス変数
メソッド
CFXML
Carbon Event
Carbon Graphics
Cocoa で日本語
メソッド
その他

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



[Home] [Download] [Archives] [BBS] [Cocoa Programming Tips 1001] [Core Foundation の秘密] [Safari Developer Center] [はじめてのブラウザのつくり方] [Sketch BP] [スクリーンセイバーを作ろう] [Objective-C 最適化] [Authorization API 完全理解] [Mac OS X Programming Books Review] [オブジェクト指向の言語比較論] [panther-dev]

mailto: mkino@xd5.so-net.ne.jp