だから私はキャンバス(UIView)とUIImageViewを持っています、キャンバスはimageviewのマスクとして機能します
UIGestureRecognizersを使用して、キャンバスの下にあるUIImageViewをズームおよび回転しています。
最終的な画像を変換したい(キャンバスに表示してUIImageに変換する、1つの解決策は、キャンバスを以下のような画像に変換することです
UIGraphicsBeginImageContext(self.canvas.bounds.size);
[self.canvas.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *newCombinedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
これで問題なく動作しますが、このソリューションの問題は、画像がキャンバスのサイズにトリミングされるため、解像度が非常に低くなることです。
私が調べたもう1つのオプションは、いくつかのカスタムUIImageカテゴリを使用して回転および拡大縮小することでした。
[[[self.photoImage image] imageRotatedByDegrees:rotaton_angle]
imageAtRect:CGRectMake(x,y width,height)]
回転角を指定する必要があります(UIGesture Delegateによって提供される回転角は度またはラジアンではなく、x、y、幅、高さがあります。これらは何らかのスケールに基づいて計算する必要があると思います(スケール値を取得します) UIGestureデリゲートからですが、この関数には正しくないようです)
ここには多くの解決策があり、長方形を指定してトリミングして画像化するためのガイドとなります。しかし、私の場合、rectは画像と同じスケールではなく、回転も含まれます。
どんな助けでもありがたいです。