私は、ユーザーが画像にラベル(テキスト)を書き込んで、そのラベルを付けてiphoneローカルストレージに保存する必要があるアプリを開発しています。
(つまり、ユーザーは画像上に提供された場所に任意のテキストを追加でき、iphoneローカルストレージに書き込んだラベルを使用して画像として保存する必要があります
前もって感謝します
私は、ユーザーが画像にラベル(テキスト)を書き込んで、そのラベルを付けてiphoneローカルストレージに保存する必要があるアプリを開発しています。
(つまり、ユーザーは画像上に提供された場所に任意のテキストを追加でき、iphoneローカルストレージに書き込んだラベルを使用して画像として保存する必要があります
前もって感謝します
UILabelをサブビューとしてUIImageViewに追加すると、UIImageが含まれます。
UIGraphicsBeginImageContextWithOptions(UIImageView.bounds.size, UIImageView.opaque, 0.0);
[UIImageView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
必要なUIImageを取得します
また
自分で描くだけ
UIGraphicsBeginImageContext(imageSize);
......
CGContextDrawImage(.....);
CGContextShowTextAtPoint(.....);
......
UIGraphicsEndImageContext();
UIImageViewとUILabelを特定のUIViewのサブビューとして追加し(このビューをと呼ぶことにしますcustomView
)、を使用してビューのスクリーンショットを撮る必要があると思います。
次のように理解しやすくするために変更されたリンクからの回答:
重要:追加QuartzCore Framework
して追加#import<QuartzCore/QuartzCore.h>
CGSize screenSize = [[UIScreen mainScreen] applicationFrame].size; CGColorSpaceRef colorSpaceRef = CGColorSpaceCreateDeviceRGB(); CGContextRef ctx = CGBitmapContextCreate(nil, screenSize.width, screenSize.height, 8, 4*(int)screenSize.width, colorSpaceRef, kCGImageAlphaPremultipliedLast); CGContextTranslateCTM(ctx, 0.0, screenSize.height); CGContextScaleCTM(ctx, 1.0, -1.0); [(CALayer*)customView.layer renderInContext:ctx]; CGImageRef cgImage = CGBitmapContextCreateImage(ctx); UIImage *image = [UIImage imageWithCGImage:cgImage]; CGImageRelease(cgImage); CGContextRelease(ctx); [UIImageJPEGRepresentation(image, 1.0) writeToFile:filePath atomically:NO];
ここで、 filePathは、アプリケーションのDocumentsディレクトリファイルパスです。
NSDocuments Directoryファイルパスは、次を使用して取得できます。
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"savedImage.png"];
次に、ビューをキャプチャするボタンまたはその他のコントロールクリックでこのコードを実行します。
さらにサポートが必要な場合はお知らせください。
これがお役に立てば幸いです。
両方を1つの画像に収めるには、画面全体のスクリーンショットをキャプチャする必要があります。
Appleドキュメントの詳細はこちらから入手できます