0

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

在此处输入图像描述

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

我使用以下来获取图像。

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

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

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

在此处输入图像描述

4

1 回答 1

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;
    }

Here You get croppedimage and you can put it on you like (also put image on newViewand add it io you )backGroungColorUIImageViewnewView

UIView *newView = [[UIView alloc]initWithFrame:CGRectMake("as YOu Need")];
self.tblView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:cropped]];
[self.view addSubView:newView];
于 2013-04-17T11:31:17.270 回答