使用浮动UIView裁剪(UIGraphicsImageContext)图像

时间:2012-05-27 14:58:49

标签: ios uiview

这是我的视图层次结构:我在Xib中有一个视图(默认viewControllher的_view),其中包含一个UIWebView子视图。在同一个Xib文件中,单独的第二个视图(不在_view内)称为floatView。 floatView以编程方式添加到UIWebView之上,可以由用户拖动。在floatView里面我有一个较小的subView(cropView)。 我想使用cropView作为裁剪框架来获取其下的可见部分webView。

继承我正在尝试使用的代码,但结果不是我需要的。

- (IBAction)captureImage:(id)sender {

    CGSize layerSize = self.view.bounds.size;

    UIGraphicsBeginImageContext(layerSize);

    [self.webView.layer renderInContext:UIGraphicsGetCurrentContext()];

    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();

    [floatView convertRect:cropView.frame toView:self.view];

    CGRect CropFrame = cropView.frame;


    CGImageRef subImageRef = CGImageCreateWithImageInRect(image.CGImage, CropFrame);
    UIImage *subViewImage = [UIImage imageWithCGImage:subImageRef];
    UIGraphicsEndImageContext();

    UIImageWriteToSavedPhotosAlbum(subViewImage, nil, nil, nil);
}

我在相机胶卷中获得的图像是裁剪后的图像,其大小不正确,不在可见的webView的正确位置。

我查看了其他帖子和解决方案,但找不到解决我问题的方法。

1 个答案:

答案 0 :(得分:0)

解决了它(有点)。在_view层次结构中移动了floatView,在webView的顶部移动并设法使用[view.layer presentationLayer] .frame解决方案获取其原点坐标,我找到了here。现在它有效......