Objective c 用4个CG点剪切图像

Objective c 用4个CG点剪切图像,objective-c,uiimage,Objective C,Uiimage,我有一张图片,想剪下来。我有4个点的边缘。我试着用一个面具,但它只会把颜色变成透明的。我需要一个全新的图像。有人能帮我吗?(在目标C中) 谢谢 使用这样的代码originalImage是图像,p0、p1、p2和p3是作为输入的CGPoints剪裁图像是生成的图像: // Create clipping path UIBezierPath *path = [UIBezierPath bezierPath]; [path moveToPoint:p0]; [path addLineToPoint:p

我有一张图片,想剪下来。我有4个点的边缘。我试着用一个面具,但它只会把颜色变成透明的。我需要一个全新的图像。有人能帮我吗?(在目标C中)


谢谢

使用这样的代码
originalImage
是图像,
p0
p1
p2
p3
是作为输入的
CGPoint
s<代码>剪裁图像是生成的图像:

// Create clipping path
UIBezierPath *path = [UIBezierPath bezierPath];
[path moveToPoint:p0];
[path addLineToPoint:p1];
[path addLineToPoint:p2];
[path addLineToPoint:p3];
[path closePath];

// Get boundary rectangle
CGRect rect = path.bounds;

// Create graphis context with translation and clipping
UIGraphicsBeginImageContextWithOptions(rect.size, NO, 1);
CGContextTranslateCTM(UIGraphicsGetCurrentContext(), -rect.origin.x, -rect.origin.y)
[path addClip];

// draw image
[originalImage drawAtPoint:CGPointZero];

// create resulting image
UIImage *clippedImage = UIGraphicsGetImageFromCurrentImageContext();

// clean up
UIGraphicsEndImageContext();

我没有测试代码。这可能是因为平移和剪切的顺序不正确,或者使用了错误的符号。

是你的朋友。是的,但我没有一个CGRect,只有4个CG点。这四个点是矩形还是非矩形?因为在iOS中图像总是矩形的,你认为最终的图像是什么?与原始图像大小相同,但在裁剪/剪裁边界外有透明区域?一个最小的矩形尺寸,以适应裁剪/剪裁的图像和剪辑边界外的透明区域?一个最小的矩形尺寸会更好!但是你能把短边拉伸成真正的矩形吗?像扫描仪应用程序?现在它是透明的。这就是为什么我问生成的图像应该是什么样子。你应该早点告诉我。你需要更好地描述你真正想要的。如果你的四个点不是随机的,但有一些限制条件,例如它们形成一个梯形,那么只能有一个“短边”。如果是这样,你也需要描述一下。是的,对不起。我希望它像一个扫描仪应用程序。例如,如果你问了一个新问题并准确描述了你想要什么,ScanBot或TinyScanIt是最好的。您可能希望添加一个前后情况的说明,以描述所需的转换。“像扫描器应用程序”不行。好吧,我问过了