将 UIImage 和 UIBezierPath 合并为 1 个 UIImage
Merge UIImage and UIBezierPath into 1 UIImage
我有一个视图有一个 UIImage
和一个 DrawView
作为子视图。绘图视图响应触摸并创建 UIBezierPath
用于在 图像上绘制。当用户接受他们的更改时,我需要将基础 UIImage
和创建的任何 UIBezierPath
合并为一个 UIImage
.
将 UIBazierPath
设为 DrawView
的 public 属性,并在用户从 DrawView
中绘制时不断更新它。当用户点击“接受”按钮时,使用以下代码简单地在上下文中创建 UIImageContext
和 draw,sourceImage
和 bezierPath
。最后在 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.
我有一个视图有一个 UIImage
和一个 DrawView
作为子视图。绘图视图响应触摸并创建 UIBezierPath
用于在 图像上绘制。当用户接受他们的更改时,我需要将基础 UIImage
和创建的任何 UIBezierPath
合并为一个 UIImage
.
将 UIBazierPath
设为 DrawView
的 public 属性,并在用户从 DrawView
中绘制时不断更新它。当用户点击“接受”按钮时,使用以下代码简单地在上下文中创建 UIImageContext
和 draw,sourceImage
和 bezierPath
。最后在 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.