将 UIImage 和 UIBezierPath 合并为 1 个 UIImage

Merge UIImage and UIBezierPath into 1 UIImage

我有一个视图有一个 UIImage 和一个 DrawView 作为子视图。绘图视图响应触摸并创建 UIBezierPath 用于在 图像上绘制。当用户接受他们的更改时,我需要将基础 UIImage 和创建的任何 UIBezierPath 合并为一个 UIImage.

UIBazierPath 设为 DrawView 的 public 属性,并在用户从 DrawView 中绘制时不断更新它。当用户点击“接受”按钮时,使用以下代码简单地在上下文中创建 UIImageContextdrawsourceImagebezierPath。最后在 resultImage 中获取在上下文中绘制的任何内容。

UIBezierPath *path = drawView.Path // Your Bezier Path in DrawView
UIImage *sourceImage = sourceImageView.image; // Your Source Image from ImageView.
UIImage *resultImage = nil;
UIGraphicsBeginImageContext(sourceImage.size);
[sourceImage drawInRect:(CGRect){CGPointZero, sourceImage.size}];
[path stroke]; //Fill or Stroke path as you need.
[path fill];

resultImage = UIGraphicsGetImageFromCurrentImageContext(); //taking the merged result from context, in a new Image. This is your required image.

UIGraphicsEndImageContext();

//Use resultImage as you want.