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 で取得すれば完成です。
[ もどる ]