感谢大家。我有解决方案在java中将图像切割成不规则形状。但现在我想在iOS中实现这一目标。
这是我的要求:
我用手指通过触摸选择特定部位并在图像上绘图,完成绘图后,我想绘制图像的那一部分。我可以使用触摸绘制,但我怎样才能削减特定部分?
我知道将图像切割成矩形和圆形但不是特定的形状。
如果有人知道请帮帮我。
答案 0 :(得分:2)
绘制一个封闭的CGPath并将其转换为图像蒙版。如果我有更多经验,我会提供更多细节,但我只是在天气应用程序中完成了图表。指南应该有所帮助。
答案 1 :(得分:0)
以下是包含所选矩形区域的公司图像的代码。但您可以使用CGPath
自定义所选区域,然后将图像置于其中。
-(IBAction) cropImage:(id) sender{
// Create rectangle that represents a cropped image
// from the middle of the existing image
float xCo,yCo;
float width=bottomCornerPoint.x-topCornerPoint.x;
float height=bottomCornerPoint.y-topCornerPoint.y;
if(width<0)
width=-width;
if(height<0)
height=-height;
if(topCornerPoint.x <bottomCornerPoint.x){
xCo=topCornerPoint.x;
}else{
xCo=bottomCornerPoint.x;
}
if(topCornerPoint.y <bottomCornerPoint.y){
yCo=topCornerPoint.y;
}else{
yCo=bottomCornerPoint.y;
}
CGRect rect = CGRectMake(xCo,yCo,width,height);
// Create bitmap image from original image data,
// using rectangle to specify desired crop area
UIImage *image = [UIImage imageNamed:@"abc.png"];
CGImageRef imageRef = CGImageCreateWithImageInRect([image CGImage], rect);
UIImage *img = [UIImage imageWithCGImage:imageRef];
CGImageRelease(imageRef);
// Create and show the new image from bitmap data
imageView = [[UIImageView alloc] initWithImage:img];
[imageView setFrame:CGRectMake(110, 600, width, height)];
imageView.image=img;
[[self view] addSubview:imageView];
[imageView release];
}
答案 2 :(得分:0)
CGSize newSize = CGSizeMake(backGroundImageView.frame.size.width, backGroundImageView.frame.size.height);
UIGraphicsBeginImageContext(newSize);
[<Drawing Imageview> drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
[backGroundImageView.image drawInRect:CGRectMake(0,0,newSize.width,newSize.height) blendMode:kCGBlendModeSourceIn alpha:1.0];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();