iphone-获取UIView的矩形部分并创建一个新视图

时间:2013-04-17 11:09:55

标签: iphone ios uiview

我有一张带图像的UIView。我使用了UIBezierPath并裁剪了该视图的一部分。如下图所示。

enter image description here

现在我想要一个新的UIView对象,其框架为可见图像。我怎样才能做到这一点。 请帮忙。谢谢。

我用以下来获取图像。

-(UIImage *)getImage
{
    UIGraphicsBeginImageContext(self.bounds.size);

    [self.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    [image retain];
    return [image autorelease];
}

但是我得到原始的完整图像而不是裁剪的图像。我得到了以下图片。

enter image description here

1 个答案:

答案 0 :(得分:0)

对于切割矩形图像:

UIImage *croppedImg = nil;
CGRect cropRect = CGRectMake(100 , 100, 50, 50);// set as you need
croppedImg = [self croppIngimageByImageName:self.imageView.image toRect:cropRect];

使用以下方法返回UIImage,如您所希望的图片尺寸

- (UIImage *)croppIngimageByImageName:(UIImage *)imageToCrop toRect:(CGRect)rect
    {
        //CGRect CropRect = CGRectMake(rect.origin.x, rect.origin.y, rect.size.width, rect.size.height+15);

        CGImageRef imageRef = CGImageCreateWithImageInRect([imageToCrop CGImage], rect);
        UIImage *cropped = [UIImage imageWithCGImage:imageRef];
        CGImageRelease(imageRef);

        return cropped;
    }

此处您获得了cropped图片,您可以将newView作为backGroungColor添加到UIImageView,例如{还将图片放在newView上并将其添加到您{{1} }})

UIView *newView = [[UIView alloc]initWithFrame:CGRectMake("as YOu Need")];
self.tblView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:cropped]];
[self.view addSubView:newView];