我的UIImageView *userImage
尺寸为全屏,UIImageView *imageSquare
尺寸为320x320。用户可以使用userImage
来更大,更改位置等。imageSquare
是静态的,应该被视为裁剪视图
以下代码可以将userImage
裁剪为imageSquare.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];
}
答案 0 :(得分:0)
您需要翻译否定 x
和y
:
CGContextTranslateCTM(resizedContext,
-userImage.frame.origin.x,
-userImage.frame.origin.y);
[userImage.layer renderInContext:resizedContext];