サイズが 320x320のUIImageView *userImage
とがあります。UIImageView *imageSquare
ユーザーは、userImage
サイズを変更したり、位置を変更したりして遊ぶことができます。imageSquare
静的で画面の中央に配置され、トリミング ビューとして表示される必要があります
以下のコードは、userImage をimageSquare
元のサイズとしてトリミングできますが、新しいアスペクト比/スケールではトリミングできません。
私はこれをしようとして夢中になっていますが、方法が見つかりません。の現在のビュー (ユーザーが操作しているビュー)をトリミングするにはどうすればよいuserImage
ですか?
CGSize pageSize = imageSquare.frame.size;
UIGraphicsBeginImageContext(pageSize);
CGContextRef resizedContext = UIGraphicsGetCurrentContext();
CGContextTranslateCTM(resizedContext, -imageSquare.frame.origin.x, -imageSquare.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];
}