0

で単純なトリミングを使用してUIImageいますが、最終的な画像を確認するときにトリミングした後、iPhone で回転します。以下は、トリミングに使用される私のコードです。

CGRect visibleRect;
float scale = 1.0f/scrollView.zoomScale;
visibleRect.origin.x = scrollView.contentOffset.x * scale;
visibleRect.origin.y = scrollView.contentOffset.y * scale;
visibleRect.size.width = scrollView.bounds.size.width * scale;
visibleRect.size.height = scrollView.bounds.size.height * scale;
finalImage = imageFromView(displayImageView.image, &visibleRect);

UIImage* imageFromView(UIImage* srcImage, CGRect* rect) {
    CGImageRef cr = CGImageCreateWithImageInRect(srcImage.CGImage, *rect);
    UIImage* cropped = [UIImage imageWithCGImage:cr];

    CGImageRelease(cr);
    return cropped;
}

私が間違ったことをしている場合はお知らせください。

4

1 に答える 1

0

crpp 後にこのメソッドを呼び出す必要があります

-(UIImage*)rotateImage:(UIImage*)image

{

UIGraphicsBeginImageContext(image.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextDrawImage(context, CGRectMake(0 , 0, image.size.width , image.size.height), [image CGImage]);


CGContextRotateCTM (context, radians(90));

CGImageRef cgImage = nil;

cgImage = CGBitmapContextCreateImage(context);

UIImage *img = [UIImage imageWithCGImage:cgImage];


return img;

}
于 2013-01-17T10:25:25.063 に答える