スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
このエントリーをはてなブックマークに追加

[iOS]UIImage同士を指定のBlendModeで合成する2

こちらも前回のものに手を加えたものです。
UIImageインスタンスに対して、blendImageを合成するような指定が行えるよう変更を加えました。
引数が一つ減りました。

//selfに対して、blendImageを合成モードで合成します
- (void)blendImages:(UIImage *)blendImage
BlendMode:(CGBlendMode)mode
currentRect:(CGRect)currentRect
blendedRect:(CGRect)blendRect
{
UIGraphicsBeginImageContext(currentRect.size);
[self drawInRect:currentRect];
[blendImage drawInRect:blendRect blendMode:mode alpha:1.0f];
CGImageRelease(self.CGImage);
//selfに取得したコンテクストを設定します
id result = [self initWithCGImage:UIGraphicsGetImageFromCurrentImageContext().CGImage];
UIGraphicsEndImageContext();

if(!result)NSLog(@"failed in the initializetion of the image.");
}


//利用例
UIImage *image1 = [[UIImage alloc] init];
UIImage *image2 = [[UIImage alloc] init];
CGRect rect = CGRectMake(0,0,50,50);
[image1 blendImages:image2
BlendMode:kCGBlendModeScreen
currentRect:rect
blendedRect:rect];


(2013/04/12 更新)
initWithCGImage時にleakしていた問題を解消しました。
initWithCGImage前に古いCGImageを解放する処理を追加することでleakしなくなります。
このエントリーをはてなブックマークに追加

tag : iOS UIImage CGImage blend 合成 合体 合わせる

コメントの投稿

非公開コメント

Translation


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。
プロフィール

チーズくん

Author:チーズくん
個人的メモをただ羅列しています。
twitter:@cheese1038

バロメーター
最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。