0

私はここで説明されているように正確な問題を抱えています:

回転したUIImageをトリミングします。

回転したUIImageをトリミングする必要がありますが、ソリューションを試しても画像がトリミングされません

UIView *rotatedViewBox = [[UIView alloc] initWithFrame:videoPreviewView.frame];
NSLog(@"frame width: %f height:%f x:%f y:%f",videoPreviewView.frame.size.width, videoPreviewView.frame.size.height,videoPreviewView.frame.origin.x,videoPreviewView.frame.origin.y);
rotatedViewBox.transform = CGAffineTransformMakeRotation(90 * M_PI / 180);
CGSize rotatedSize = rotatedViewBox.frame.size;
UIGraphicsBeginImageContext(rotatedSize);
CGContextRef bitmap = UIGraphicsGetCurrentContext();
CGContextTranslateCTM(bitmap, rotatedSize.width / 2.0f, rotatedSize.height / 2.0f);
CGContextRotateCTM(bitmap, 90 * M_PI / 180);
CGContextScaleCTM(bitmap, 1.0f, -1.0f);
CGContextDrawImage(bitmap, CGRectMake(-videoPreviewView.frame.size.width / 2.0f,
                                             -videoPreviewView.frame.size.height / 2.0f,
                                              videoPreviewView.frame.size.width,
                                              videoPreviewView.frame.size.height),
                           image.CGImage);
UIImage *resultImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

ログは次のとおりです。フレーム幅:310高さ:310 x:0 y:69

ただし、回転は機能しますが、新しい画像は古い画像の0,69,310,310でトリミングされません。

4

1 に答える 1

0

あなたは「解決策」を使用していますが、これは受け入れられたものの、「しかしそれは機能していません」というOPコメントも含んでいます。

このソリューションは、問題の回転部分のみを処理し、作物は処理しないと主張しています。それはそれがすることを主張することをしているが、それ以上はしていない。

切り抜きを実行するCG関数は次のとおりです。

CGImageRef CGImageCreateWithImageInRect (
   CGImageRef image,
   CGRect rect
);

画像とトリミングしたい領域の長方形を入力します。

使用例については、こちらの回答を参照してください:
UIImageのトリミング

于 2013-02-03T13:07:07.623 に答える