3

カメラから画像をロードする iPhone アプリケーションを作成しています。ユーザーはライブラリから 2 番目の画像を選択し、その 2 番目の画像を移動/スケーリング/回転して、結果を保存できます。IB で 2 つの UIImageView をプレースホルダーとして使用し、タッチ/ピンチしながら変換を適用します。

問題は、両方の画像を一緒に保存する必要がある場合です。最初の画像のサイズの rect を使用して に渡しUIGraphicsBeginImageContextます。それから私は使用しようとしましCGContextConcatCTMたが、それがどのように機能するか理解できません:

CGRect rect = CGRectMake(0, 0, img1.size.width, img1.size.height); // img1 from camera
UIGraphicsBeginImageContext(rect.size); // Start drawing
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextClearRect(ctx, rect); // Clear whole thing
[img1 drawAtPoint:CGPointZero]; // Draw background image at 0,0
CGContextConcatCTM(ctx, img2.transform); // Apply the transformations of the 2nd image

しかし、次に何をする必要がありますか?img2.transform マトリックスにはどのような情報が保持されていますか? のドキュメントはCGContextConcatCTM残念ながらあまり役に立ちません..現在、三角法を使用してポイントと角度を計算することで解決しようとしています(この回答の助けを借りて)が、変換が存在するため、これを行うためのより簡単でエレガントな方法ですよね?

4

1 に答える 1

0

この優れた回答を見てください。ビットマップ/画像コンテキストを作成し、それに描画して、結果の画像を取得する必要があります。その後、それを保存できます。アップロード後の iOS UIImagePickerController 結果の画像の向き

于 2012-03-28T14:32:47.027 に答える