9

我在 UIScrollView 中有一个可以滚动和缩放的图像。

当用户按下按钮时,我希望代码从 UIScrollView 的任何部分在我用 CGRect 指定的区域内创建图像。

我已经看到了裁剪 UIImages 的代码,但我无法调整它来为视图做同样的事情,因为它使用 CGContextDrawImage。

有什么想法吗?

干杯,安德烈

4

1 回答 1

28

我设法得到它。

这是我的解决方案,基于网络上的一些不同的解决方案:

- (UIImage *)imageByCropping:(UIScrollView *)imageToCrop toRect:(CGRect)rect
{
    CGSize pageSize = rect.size;
    UIGraphicsBeginImageContext(pageSize);

    CGContextRef resizedContext = UIGraphicsGetCurrentContext();
    CGContextTranslateCTM(resizedContext, -imageToCrop.contentOffset.x, -imageToCrop.contentOffset.y);
    [imageToCrop.layer renderInContext:resizedContext];
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();

    return image;
}

您通过以下方式调用:

CGRect clippedRect = CGRectMake(0, 0, 320, 300);
picture.image = [self imageByCropping:myScrollView toRect:clippedRect];
于 2010-03-23T15:34:42.943 回答