UIView を UIImage に変換する : Objective-C プログラミング

PROGRAM


UIView を UIImage に変換する

Objective-C では UIView を UIImage に簡単に変換することができます。

例えば UIView 型の "view" に表示される内容を、UIImage 型の画像 "image" として取得したい場合は、次のような感じになります。

// CALayer を利用するにあたって、以下のヘッダーが必要になります。

#import <QuartzCore/QuartzCore.h>

 

// 例えば、UIView の内容を UIImage に変換するメソッドです。

+ (UIImage*)imageFromView:(UIView*)view

{

UIImage* image;

 

// UIView のサイズの画像コンテキストを開始します。

UIGraphicsBeginImageContext(view.frame.size);

 

// 開始した画像コンテキストを取得します。

CGContextRef context = UIGraphicsGetCurrentContext();

 

// UIView の内容を、開始した画像コンテキストへ書き出させます。

[view.layer renderInContext:context];

 

// 画像コンテキストから画像を生成します。

image = UIGraphicsGetImageFromCurrentImageContext();

 

// 画像コンテキストを終了します。

UIGraphicsEndImageContext();

 

return image;

}

このように、画像コンテキストを取得したら、UIView が持つ CALayer の "renderInContext:" をつかって、そこへ描画させてあげる感じになります。

後は描画した画像コンテキストを UIImage で取得すれば完成です。

[ もどる ]