捕获UIImage的放大部分,就好像它是自己的图像一样

时间:2012-05-17 02:13:06

标签: ios uiscrollview uiimageview uiimage quartz-2d

我有以下情况:   - 图像(作为相机图片)   - 图像嵌入在UIImageView中   - 图像视图嵌入在UIScrollView

我可以成功缩放和平移。我现在要做的是当用户放大图像的一部分时,能够将该缩放视为UIImageView中的唯一内容。我希望他们能够再次缩小,所以我不想丢失原始图像(这会丢掉我已经看过的图像的答案)。

现在发生的事情是我可以进行缩放,但缩放的图像会被推到0,0,好像我放大了图像的左上角(而不是用户放大的任何地方)。

我在scrollViewDidEndZooming中没有太多,但这就是我假设代码将要去的地方。我正在做类似的事情:

- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale
{
    CGFloat zoomReciprocal = 1.0f / scale;

    CGPoint offset = CGPointMake(imageHolder.image.size.width * ((1.0f - zoomReciprocal) / 2.0f), imageHolder.image.size.height * ((1.0f - zoomReciprocal) / 2.0f));
    CGRect croppedRect = CGRectMake(offset.x, offset.y, imageHolder.image.size.width * zoomReciprocal, imageHolder.image.size.height * zoomReciprocal);

    //and have tried things like:
    //[imageHolder.image drawInRect:croppedRect];
    //scrollView.contentSize = [self maximumUsableFrame].size;
    //scrollView.contentOffset = offset;
}

我想要做的基本上是能够放大图像的一部分,并让其余方法认为是当前图像。任何想法或指针?

0 个答案:

没有答案