0

我有一个UIImageView *userImage尺寸是全屏UIImageView *imageSquare的,尺寸是 320x320。用户将能够将userImage其变大,改变位置等imageSquare是静态的,应该被视为裁剪视图

下面的代码可以裁剪userImageimageSquare.frame.size. 我的问题是它从顶部userImage而不是从顶部裁剪imageSquare.frame.origin,这意味着我需要从 X 和 Y 坐标裁剪它。这是我第一次尝试这样做,到目前为止我尝试过的每件事都无法从imageSquare.frame.origin.

我如何裁剪当前视图(用户正在操作的userImage视图)imageSquare.frame.origin

CGSize pageSize = imageSquare.frame.size;

    UIGraphicsBeginImageContext(pageSize);

    CGContextRef resizedContext = UIGraphicsGetCurrentContext();
    CGContextTranslateCTM(resizedContext, userImage.frame.origin.x, userImage.frame.origin.y);

    [userImage.layer renderInContext:resizedContext];
    image = UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();

    if (image != nil) {
        NSLog(@"is not nil");
        NSData *imgData = UIImagePNGRepresentation(image);
        imageSquare.image = [[UIImage alloc]initWithData:imgData];

    }
4

1 回答 1

0

你需要用否定 x和翻译y

CGContextTranslateCTM(resizedContext,
                      -userImage.frame.origin.x,
                      -userImage.frame.origin.y);
[userImage.layer renderInContext:resizedContext];
于 2013-09-13T08:58:32.720 回答