3

カメラから画像を取得していますが、それらが異なる方向にあることを考慮する必要があります。私が取った最初のアプローチは、このコード スニペットを使用して適切に回転した を作成することでしたUIImage。を計算し、CGAffineTransformを使用して画像を描画しCGContextDrawImageます。

ただし、この操作は完了するまでに 2 ~ 3 秒かかりました。

私が取った 2 番目のアプローチは、画像を回転させる必要がある度数と、画像を反転する必要があるかどうかを計算し、それらの回転を適用してからUIImage. このアプローチにかかった時間はごくわずかです。

具体的にはCocos2Dを使っているので、どちらも を に変換しUIImageて、CCTexture2Dそのテクスチャでスプライトを作ってから描いています。最初のケースでは、新しい を作成しUIImage、回転していないCCSprite. 2 つ目は、同じUIImageものを使用しましたが、回転したスプライトがありました。

2 番目のアプローチがなぜこれほど高速なのか? 最終的な結果は同じで、回転した画像になります。この結果を得るには、同じビットとバイトを同じ方法で操作する必要があるようです。

4

1 に答える 1

1

この質問、実験、および回答をご覧ください。UIImageこれらの最適化の一部はすでにバックグラウンドで実行されている可能性があります (実装の詳細がわからないため、実際に知る方法はありません)。

于 2013-10-18T21:04:51.673 に答える