こんにちは。
先月中旬より、自分のお店のためのiPhoneアプリを作ってみようと挑戦中です。
iphoneのディスプレイに表示されているViewをそのまんま綺麗に印刷したいです。
印刷データなので解像度が高くないといけないので、Viewのコンテキストを4倍にし、キャプチャ画像を取得するということをしたいのですが、
View上にUILabelを配置しているのですが、できあがりの画像をピクセル等倍でphotoshopで表示してみたら、鮮明ではありませんでした。
photoshopでいうとラスタライズ済みの画像を引き伸ばした感じの画像になってしまう感じです。
photoshopでラスタライズ前、解像度を高くすると、文字レイヤーもそれに伴い解像度UPするように、Viewに配置している全てのアイテムが、それぞれ4倍の大きさになり、高画質に再描画され、そのViewをキャプチャできたらな〜と思うのですが、そんな簡単にはできないでしょうか…。
lang
1 CGRect rect = view.bounds; 2 3 UIGraphicsBeginImageContextWithOptions(rect.size, NO, 4);//(1)4倍に拡大 4 5 CGContextRef ctx = UIGraphicsGetCurrentContext();//(2)現在のコンテキストを得る 6 7 CGContextFillRect(ctx, rect);//(3)指定された範囲(CGRect)を描画 8 9 [view.layer renderInContext:ctx];//(4)対象Viewの描画内容をContextに複写 10 11 NSData *data = UIImagePNGRepresentation(UIGraphicsGetImageFromCurrentImageContext()); 12 13 UIImage *capture = [UIImage imageWithData:data]; 14 15 UIGraphicsEndImageContext();
最初に、
view.transform = CGAffineTransformMakeScale(4, 4);
とし、Viewを4倍にしする処理を入れてみましたが、出来上がった画像に違いはありませんでした。
あまり理解していないのにやっているのがいけないのですが、手詰まり感があるので、質問をさせていただきました。
ヒントをいただけると大変嬉しく思います。
初心者故、的はずれなことを書いていたらすみません。
何卒よろしくお願いいたします。
Xcode6.3.2
iOS Simulator iOS8.3/iPhone6
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/07/10 22:09 編集
2015/07/11 01:50
2015/07/13 00:59