7

画像を描画する場合は、CGAffintrasformを使用して問題を修正しました

CGAffineTransform myTr = CGAffineTransformMake(1, 0, 0, -1, 0, backImage.size.height);
CGContextConcatCTM(context, myTr);
[backImage drawInRect:CGRectMake(cbx, -cby, backImage.size.width, backImage.size.height)];
myTr = CGAffineTransformMake(1, 0, 0, -1, 0, backImage.size.height);
CGContextConcatCTM(context, myTr);

ファイルに書き込みたいときはこれを使用します

 NSData *imageData = UIImageJPEGRepresentation(backImage, 0);  

次に、画像を逆さまにしますか?

4

2 に答える 2

2

まず恒等行列を作成します。

1, 0, 0
0, 1, 0
0, 0, 1

CGAffineTransform matrix = CGAffineTransformMake(1, 0, 0, 1, 0, 0);

描画位置を移動...

matrix = CGAffineTransformTranslate(matrix, x, y);

行列を水平方向に反転します。

matrix = CGAffineTransformScale(matrix, -1, 1);

行列を垂直に反転します。

matrix = CGAffineTransformScale(matrix, 1, -1);

行列を回転

matrix = CGAffineTransformRotate(matrix, angle);

スケール UIImage を UIView に合わせます。

matrix = CGAffineTransformScale(matrix, imageWidth/viewWidth, imageheight/viewHeight);

マトリックスをコンテキストに起動します。

CGContextConcatCTM(context, matrix);

イメージを描きます。

[backImage drawAtPoint:CGPointMake(0, 0)];

:)

于 2012-07-31T14:15:31.333 に答える
2

保存する UIImage を取得する場合は、次を使用します。

UIGraphicsBeginImageContextWithOptions(size, isOpaque, 0);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextDrawImage(context, (CGRect){ {0,0}, origSize }, [origImage CGImage]);
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;

次に、次のようにします。

 NSData *imageData = UIImageJPEGRepresentation(backImage, 0);
于 2012-07-31T14:00:17.507 に答える