如何使用核心图形绘制带有自定义图案/图像的线条/笔划?
Posted
技术标签:
【中文标题】如何使用核心图形绘制带有自定义图案/图像的线条/笔划?【英文标题】:How to draw a line/stroke with custom pattern/image using core graphics? 【发布时间】:2021-01-08 19:50:02 【问题描述】:我正在开发一个 pdf 注释应用程序,到目前为止,我可以使用“PDFAnnotationSubtype.stamp”中的图像画一条线。
图片:
使用以下代码:
public class ImageAnnotation: PDFAnnotation
init(with image: UIImage!, forBounds bounds: CGRect, withProperties properties: [AnyHashable : Any]?)
super.init(bounds: bounds, forType: PDFAnnotationSubtype.stamp, withProperties: properties)
self._image = image
override public func draw(with box: PDFDisplayBox, in context: CGContext)
guard let cgImage = self._image?.cgImage else return
context.draw(cgImage, in: self.bounds)
结果:
使用这种方法,我最终会在每个 CGpoint 添加图像(换句话说,每个 cgpoint 都是单独的 PDFAnnotation)。如何将整个路径制作为单个笔画/单个注释,这样当我尝试擦除时,应该清除整个路径,而不是仅清除几个 cgpoint/像素。
【问题讨论】:
【参考方案1】:在搜索了几个资源后发现我们可以使用“CGPattern”来纹理线条。
参考: https://developer.apple.com/documentation/coregraphics/cgpattern
对于尝试此操作的任何其他人,请确保使用“填充”和“描边”模式玩弄“drawingPath”。
【讨论】:
以上是关于如何使用核心图形绘制带有自定义图案/图像的线条/笔划?的主要内容,如果未能解决你的问题,请参考以下文章