Cocoa API解説(macOS/iOS)

iOS , Mac アプリケーション開発のために使われる主要フレームワークの日本語情報です。

目次

compositeToPoint:operation:fraction:

不透明度、合成方法を指定して画像を表示します
-(void)compositeToPoint:(NSPoint)aPoint:
          operation:(NSCompositingOperation)op:
          fraction:(float)fraction:

解説

不透明度、合成方法を指定して画像を表示します
【NSCompositingOperation】合成方法
● NSCompositeClear クリアする
● NSCompositeCopy 透明度を無視して上書きする
● NSCompositeSourceOver 透明度を考慮してして上書きする
● NSCompositeDestinationOver
● NSCompositeSourceIn 透明度を無視して上書きする
● NSCompositeDestinationIn 色があるところは切り抜き
● NSCompositeSourceOut クリアする
● NSCompositeDestinationOut 色があるところはクリア
● MSCompositeSourceAtop 透明度を考慮してして上書きする
● NSCompositeDestinationAtop
● NSCompositeXOR
● NSCompositePlusDarker
● NSCompositeHighlight
● NSCompositePlusLighter

返り値

( void )

なし

引数

( NSPoint )aPoint

描画位置

( NSCompositingOperation )op

合成方法

( float )fraction

不透明度0.0-1.0

フレームワーク

ApplicationKit

クラス

NSImage

Instance Methods

使用可能

10.0

参照

- dissolveToPoint:fraction:

例文

#import "SetImage.h"

@implementation SetImage

- (IBAction)set:(id)sender
{
    //開けるファイル拡張子の配列
    NSArray      *imgTypes    = [ NSArray arrayWithObject : @"tiff" ];
    //OpenPanelを作る
    NSOpenPanel  *opImage       = [ NSOpenPanel openPanel ];
    //Imageを作る
    NSImage      *img;
     NSImage      *img2;
    //OpenPanelの結果のボタン番号
    int		  opRet;
     
        //OpenPanelでファイル選択   
    opRet = [ opImage runModalForDirectory : NSHomeDirectory() //どこのディレクトリを出すか
                                     file : @"Pictures" //どのどのファイルを選択しておくか
                                    types : imgTypes ];//選べるファイルタイプ

    if ( opRet == NSOKButton ) {  // OPENPanelのボタンがOKなら
        //NSImageを作ってファイルから読み込む
        img = [ [ NSImage alloc ] 
                          initWithContentsOfFile: [ opImage filename ] ];
        //NSImageをバンドルファイルからつくる
        img2 = [NSImage imageNamed: @"NSApplicationIcon" ];
        
        //imgを描画対象にする
        [img lockFocus];
        //描画対象にimg2を合成する
        [img2 compositeToPoint:NSMakePoint(10,100) 
                operation:NSCompositeSourceOver
                fraction:0.5];
        //合成後のimgをImageViewに表示する
        [image setImage:img];
        //imgを描画から外す
        [img unlockFocus];
    }
}

@end