0

iPhoneアプリで使用するためにこの問題を解決する方法について誰かが私にいくつかのアイデアを教えてもらえますか?ユーザーは画像のサムネイルを回転および反転できますが、後でフルサイズの画像に適用できるように、これらの変換を保存したいと思います。適用されたすべての変換から文字列から最も単純な変換を実行できるようにしたいと思います。以下にいくつかの例を示します。

briefH + flipV = r180

2019 + FlipV + FlipH = FlipV

フリップV+フリップH+フリップV=フリップH

r90CW + flipH + flipV + flipH + r180CCW = briefH + r90CCW

4

1 に答える 1

2

各変換を順番に画像に適用するコストについて心配していると思います。これとは対照的に、合成された変換を保存して、それを1回だけ適用したいとします。

これが正しければ、CGAffineTransformリファレンスの「ModifyingAffineTransformations」セクションにリストされているメソッドを使用できます。つまり、基本的なID変換から始めます。

 CGAffineTransform transform = CGAffineTransformIdentity;

次に、すべての変換を順番に適用し、構成された変換を作成します。

transform = CGAffineTransformRotate(transform, rotation);
transform = CGAffineTransformTranslate(transform, dx, dy);
...

あなたがあなたのイメージに適用できること。

編集:

2つの変換を構成することは、2つの行列を乗算することを意味します。回転を作成するだけの場合は、異なる値の回転行列が得られます(0は同じ場所に保持されます)。平行移動と回転を作成すると、(回転行列と比較して)さらに2つの値を持つ新しい行列が得られます。非常に視覚的なこの説明を見てください。

アフィン変換は、iOS 5を含むすべてのiOSバージョン(実際には基本的なものです)で完全に問題ありません。

于 2012-10-11T16:17:12.653 に答える