【发布时间】:2016-07-08 08:17:15
【问题描述】:
我想创建一个 NSBezierPath 对象,它对应于任意位图图像的轮廓。
我所有的图像都是具有透明背景的 png 纯单色形状。这是一个例子:
我想要形状轮廓的贝塞尔路径。实现这一目标的最糟糕的方法是什么?
【问题讨论】:
-
请注意,在图像中有曲线的地方,路径不一定要有完美的曲线。锯齿状的逐像素再现就可以了。
标签: objective-c cocoa nsbezierpath
我想创建一个 NSBezierPath 对象,它对应于任意位图图像的轮廓。
我所有的图像都是具有透明背景的 png 纯单色形状。这是一个例子:
我想要形状轮廓的贝塞尔路径。实现这一目标的最糟糕的方法是什么?
【问题讨论】:
标签: objective-c cocoa nsbezierpath
您正在寻找的是跟踪/矢量化算法。
DrawKit 似乎支持位图到矢量跟踪:
其他一些(非 ObjC)开源项目实现了追踪(供代码参考):
任何曾经使用过 Illustrator(或其任何竞争对手的)描摹工具的人都可以向您保证,描摹并非易事。但是对于您的简单黑白图像(技术上是灰度,由于抗锯齿,但在这里可以忽略不计),几乎任何算法都可以解决问题。特别是如果您甚至不需要完美的曲线拟合,如您所指出的。
【讨论】: