我有一张带图像的UIView。我使用了UIBezierPath并裁剪了该视图的一部分。如下图所示。
现在我想要一个新的UIView对象,其框架为可见图像。我怎样才能做到这一点。 请帮忙。谢谢。
我用以下来获取图像。
-(UIImage *)getImage
{
UIGraphicsBeginImageContext(self.bounds.size);
[self.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
[image retain];
return [image autorelease];
}
但是我得到原始的完整图像而不是裁剪的图像。我得到了以下图片。
答案 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];