我有一个UIView
,其中包含2 UIImageViews
- 框架和框架后面的图片。框架不是矩形 - 它是不规则的形状。用户可以操作画面后面的图片(缩放,旋转和平移),当它们完成时,我想捕捉帧内图片的剪切 - 而不是图片和帧一起。有没有办法可以做到这一点?
我已经设法将图片和框架拼接成一个单独的图像,如下所示,但我只想要图片,如果成功提取将具有框架形状的边框。
- (IBAction)renderPhoto:(id)sender {
//Combine the layers into a single image
UIView *canvas = [[[sender superview] subviews] objectAtIndex:0];
UIGraphicsBeginImageContext(canvas.bounds.size);
[canvas.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *combinedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
}
答案 0 :(得分:2)
使用我的这个方法..
- (UIImage*)imageByCropping:(UIImage *)imageToCrop toRect:(CGRect)rect
{
UIGraphicsBeginImageContext(photo.frame.size);/// use your screen or photo frame
[photo.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *screenshot = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
CGImageRef imageRef = CGImageCreateWithImageInRect([screenshot CGImage], rect);
UIImage *cropped = [UIImage imageWithCGImage:imageRef];
/* no origin .....
UIGraphicsBeginImageContext(tempview.frame.size);
[[self.photo layer] renderInContext:UIGraphicsGetCurrentContext()];
cropped= UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
*/
return cropped;
}
希望,这有助于你.... :)
答案 1 :(得分:0)
您可以从框架创建蒙版并将此蒙版应用于目标图像,从而基本上从目标图像中剪切帧。或者,根据您最终使用最终图像的方式,在执行绘图时使用框架剪切上下文可能更简单。
第二个选项(裁剪上下文)位于Masking an Image by Clipping the Context。
下