1

画像ファイルに描画したい画像を回転させようとしています(コンテキストに合わせて)。画像を回転させる場合を除いて、すべて正常に機能します。

基本的に私はイメージを持っています。画像の拡大縮小とサイズ変更を行ってから、四角形にクリップし、最後に UICurrentContext に描画します。

//create a new graphic context
UIGraphicsBeginImageContext(CGSizeMake(500, 500));
CGContextRef graphicContext = UIGraphicsGetCurrentContext();
CGContextDrawImage(graphicContext, CGRectMake(0, 0, rect.size.width, rect.size.height), image.CGImage);
CGContextRotateCTM(graphicContext, 45 * M_PI/180.0);
UIImage* editedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

//draw it to the current context
[editedImage drawAtPoint:CGPointMake(0,0)];

問題は、画像を回転させるときです。画像コンテキストの新しいサイズがどうなるかわかりません。その横、編集画像の画像は 回転していません。

4

1 に答える 1

3

描画する前にコンテキストを回転する必要があります。ばかげているように思えますが、一枚の紙に例えると、これは動かない一枚の紙です。代わりに、その周りを移動してから描画する必要があります。

このように、大きすぎるものは単に切り取られるだけなので、サイズが変わることはありません.

EDITまた、この関数は度ではなくラジアンを使用するため、変換する必要はありません。45 度が必要な場合は、PI / 4 になります ( M_PI_4math.h に定数として格納されます)。

于 2012-06-13T09:22:52.507 に答える