0

UIImageView *userImageサイズがフルスクリーンでUIImageView *imageSquare、サイズが 320x320 です。userImageユーザーは、それを大きくしたり、位置を変更したりして遊ぶことができます。imageSquare静的であり、トリミング ビューとして表示されます。

以下のコードuserImageは、imageSquare.frame.size. 私の問題は、 からではuserImageなくの上からトリミングすることですimageSquare.frame.origin。つまり、 X および Y 座標からトリミングする必要があります。これをやろうとするのは初めてで、これまでに試したことはすべてimageSquare.frame.origin.

fromの現在のビュー (ユーザーが操作しているビュー)を切り取るにはどうすればよいですか?userImageimageSquare.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 に答える