1

私のアプリケーションでは、ユーザーが背景画像の上に画像を合成 (追加してから回転、拡大縮小、移動) し、最終的な編集をカメラ ロールに保存できます。

メインの編集 ViewController のビューは、UIView 階層の最上位です。このビューに、カメラ ロールまたはカメラからの画像を含む UIImageView をサブビューとして追加します。ユーザーは追加のキャラクター (犬、猫など) を追加し、それぞれを回転、移動、スケーリングできる個別の UIView として実装します。

ユーザーが編集を終えたら、利用可能な最高の解像度でシーン全体をカメラロールに保存したいと思います - iphone4 の背景画像 1936X2592 ピクセル (UIImageView) の解像度。

現時点では以下のコードを使用していますが、これはシーンの表示解像度のみを提供し、メモリ内の画像のフル解像度は提供しません。助言がありますか?(以下のコードでコンテキストサイズを最大の背景サイズに増やしてみましたが、うまくいきませんでした)

// create a CG context
UIGraphicsBeginImageContextWithOptions(view.bounds.size, NO, [UIScreen mainScreen].scale);

// render into the new context
[view.layer renderInContext:UIGraphicsGetCurrentContext()];

// get the image out of the context
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
4

1 に答える 1

0

答えは十分に単純なようで、このスレッドでも説明されていますhttps://stackoverflow.com/a/11177322/207616

renderInContext を呼び出す前に、描画コンテキストを単純に拡大して、目的の出力画像サイズを実現します。

CGContextScaleCTM(context, scaleFactor, scaleFactor);
于 2012-11-02T20:41:53.690 に答える