カメラから画像をロードする 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
残念ながらあまり役に立ちません..現在、三角法を使用してポイントと角度を計算することで解決しようとしています(この回答の助けを借りて)が、変換が存在するため、これを行うためのより簡単でエレガントな方法ですよね?