背景がUIImage
透明な があります。この画像を回転するとき、グラフィックの周りのバウンディング ボックスを見つけたいと思います (つまり、透明でない部分を回転させると、透明な部分を含むUIImageView
全体のバウンディング ボックスが見つかりますUIImage
)。
私のためにこれを行う可能性のあるAppleライブラリはありますか? そうでない場合、これを行う方法を知っている人はいますか?
背景がUIImage
透明な があります。この画像を回転するとき、グラフィックの周りのバウンディング ボックスを見つけたいと思います (つまり、透明でない部分を回転させると、透明な部分を含むUIImageView
全体のバウンディング ボックスが見つかりますUIImage
)。
私のためにこれを行う可能性のあるAppleライブラリはありますか? そうでない場合、これを行う方法を知っている人はいますか?
あなたの質問を正しく理解していれば、uiimageview のフレーム (境界ではない) を取得してから、個々の cgpoints を取得し、これらのポイントを明示的に変換して、変換された四角形を取得できます。Apple のドキュメントには次のように書かれているため です。関数 CGRectApplyAffineTransform を呼び出すことで、CGRect 構造体を操作できます。この関数は、渡された四角形の変換されたコーナー ポイントを含む最小の四角形を返します。ポイントを 1 つずつ変換すると、この自動修正動作を回避できます。
CGRect originalFrame = UIImageView.frame;
CGPoint p1 = originalFrame.origin;
CGPoint p2 = p1; p2.x += originalFrame.width;
CGPoint p3 = p1; p3.y += originalFrame.height;
//Use the same transformation that you applied to uiimageview here
CGPoint transformedP1 = CGPointApplyAffineTransform(p1, transform);
CGPoint transformedP2 = CGPointApplyAffineTransform(p2, transform);
CGPoint transformedP3 = CGPointApplyAffineTransform(p3, transform);
これで、これらの 3 点から新しい長方形を定義できるはずです (幅と高さは 3 点から計算できるため、4 番目の長方形はオプションです。注意すべき点の 1 つは、cgrect が定義されているため、この新しい長方形を cgrect に格納できないことです)。辺が常に x 軸と y 軸に平行になるように、原点とサイズ Apple の cgrect 定義では、回転した四角形を格納することはできません。