1

次のコードを使用して UIImage をトリミングしています。

UIImage *image=[info objectForKey:UIImagePickerControllerOriginalImage];

CGRect rect = CGRectMake(10,10,700, 700);

CGImageRef imageRef = CGImageCreateWithImageInRect([image CGImage], rect);
UIImage *img = [UIImage imageWithCGImage:imageRef];
CGImageRelease(imageRef);

高さでトリミングできますが、Y 軸を大きくするとトリミングされません。

CGRect rect = CGRectMake(10,50,700, 700);

解決策はありますか?

4

2 に答える 2

0

あなたが望むことをするこのgithubライブラリをチェックしてくださいimageCroppedToRect

- (UIImage *)imageCroppedToRect:(CGRect)rect {
    // CGImageCreateWithImageInRect's `rect` parameter is in pixels of the image's coordinates system. Convert from points.
    CGFloat scale = self.scale;
    rect = CGRectMake(rect.origin.x * scale, rect.origin.y * scale, rect.size.width * scale, rect.size.height * scale);

    CGImageRef imageRef = CGImageCreateWithImageInRect(self.CGImage, rect);
    UIImage *cropped = [UIImage imageWithCGImage:imageRef];
    CGImageRelease(imageRef);
    return cropped;
}
于 2013-03-01T08:58:25.933 に答える
0

論理的には、画像のトリミングにはサイズのみが関係します。widthしたがって、それに応じて を調整する必要がありますheight。フレームのxy座標は、サイズではなく位置のみを変更します。

于 2013-03-01T08:53:05.270 に答える