Contact me: hankecnc@gmail.com

Potrace(位图到矢量) #275

推推 grbl 3年前 (2023-02-03) 277次浏览
关闭
 打开了这个问题 2017 年 4 月 20 日 · 11 条评论
关闭

Potrace(位图到矢量)#275

 打开了这个问题 2017 年 4 月 20 日 · 11 条评论

评论

Potrace(位图到矢量) #275

我们在 LW3 中有 Potrace.js

用户在 LW4 中错过了这个功能。

当然我们可以说 – “在 Inkscape 中进行描摹”……

Potrace(位图到矢量) #275
合作者

@openhardwarecoza我看到更有用的渲染矢量作为位图。有些软件包(商业或免费)等于或优于 potrace。

Potrace(位图到矢量) #275
合作者

LW 都长大了,但让它受欢迎的是它的易用性和“解决方案提供商”

如果那是获取位图并将其转换为光栅只是为了在位图周围添加一些边缘标记我说,那就去做吧。

例如,我会尽量让用户添加一些基本形状的正方形来剪切图像

Potrace(位图到矢量) #275
合作者
jorgerobles 评论了 2017 年 4 月 20 日  

LW 都长大了,但让它受欢迎的是它的易用性和“解决方案提供商”

我见过高大的城堡因旗帜的重量而倒塌。–?(听起来像中国谚语?)

如果那是获取位图并将其转换为光栅只是为了在位图周围添加一些边缘标记我说,那就去做吧。

@cojarbi它还将克服一些性能问题。太紧的矢量比位图消耗更多的能量

Potrace(位图到矢量) #275
成员

我认为在我们添加位图跟踪之前,我们应该扩展图像处理(亮度、对比度…)以获得(实时)预览。;)
为了获得良好的描摹结果,用户至少应该能够在描摹开始之前优化图片的亮度和对比度。

Potrace(位图到矢量) #275
合作者
jorgerobles 评论了 2017 年 5 月 29 日  

@tbfleming获取实时光栅过滤器输出是可行的,但需要一些背景知识:

  • 假设有一种方法(确实存在)在 r2g 过滤器之后取回数据(Adding method to save image transforms  skarab42/lw.raster-to-gcode#5),执行过滤器处理的最佳位置应该在哪里? 
    • 早期捕获:将 r2g 实例化为光栅操作,捕获调度,传递给一个thunk动作,该动作通过变换调度图像变化,在存储中保留 2 个图像 dataUrl。(此外,捕获调度可以使用redux store observer来完成,这对我来说似乎是黑魔法,但这将是可扩展性和插件的关键特性)

    • 后期捕获:让实例 r2g 在drawDocuments方法上,并将过滤后的数据通过管道传输到工作区,在 redux 上仅保留 1 个图像 dataUrl。

    • 以上都不是:在选择时使用图像的浮动预览,并且在电流中使用。
      使用 canvasFilters 模拟图像并应用过滤器。?

Potrace(位图到矢量) #275
合作者

@openhardwarecoza说到 Potrace,流程是什么?将是一种新型操作,还是作为选定位图的工具?前者可能是一种自然的方式,后者需要一些繁重的 UI。

只要用户意识到它们的缺点,我就可以实施:我有一些矢量设计背景,并且知道质量矢量形状需要调整(重新排序、简化等),并且杂散点可能会对 Gcode 生成造成严重破坏,并且播放(该段设置…)。

Potrace(位图到矢量) #275
合作者

也许添加一些基本工具来调整对比度等会有所帮助?

操作类型如何工作:我选择文件,选择 Trace,然后它在树中创建文件的另一个实例并删除操作?

Potrace(位图到矢量) #275  提到了这个问题 2017 年 6 月 13 日
Potrace(位图到矢量) #275
合作者
jorgerobles 评论了 2017 年 6 月 14 日  

正在进行的工作https://github.com/LaserWeb/LaserWeb4/tree/image_editor

@tbfleming应用跟踪图像的 transform2d 使跟踪矢量远离。我缺少什么?

Potrace(位图到矢量) #275

Potrace(位图到矢量) #275
合作者

@tbfleming我已经设法通过转换将跟踪放在 0,0 上,但不知道如何转换为文档原点:|

Potrace(位图到矢量) #275
成员

@jorgerobles:这些变量和字段loadSvg存在于 SVG 空间中,而不是 WPos空间parentMat中:、、、、、、和。住在WPos空间。combinedMatpoint.xpoint.yxytransform2d

此代码中的推送转换为 WPos 空间:

for (let point of path.points) {
    let x = (combinedMat[0] * point.x + combinedMat[2] * point.y) / pxPerInch * 25.4 + combinedMat[4];
    let y = (combinedMat[1] * point.x + combinedMat[3] * point.y) / pxPerInch * 25.4 + combinedMat[5];
    p.push(viewBoxDeltaX + x, viewBoxDeltaY - y);
}

您需要申请transform2d兑换的积分;不要将其作为parentMat.

jorgerobles 添加了引用此问题的提交 2017 年 6 月 17 日

Potrace(位图到矢量) #275
合作者

关闭前有什么建议吗?