【发布时间】:2020-08-06 03:20:25
【问题描述】:
我想将用户上传的图像(各种格式和条件)转换为矢量图像格式,例如 .eps。我主要在 PHP 中工作。
存在哪些选项?
【问题讨论】:
-
可能重复 [将 SVG 转换为 PNG/JPEG/BMP 和反之亦然? ](stackoverflow.com/questions/4021756/…)
标签: php image-processing vectorization
我想将用户上传的图像(各种格式和条件)转换为矢量图像格式,例如 .eps。我主要在 PHP 中工作。
存在哪些选项?
【问题讨论】:
标签: php image-processing vectorization
有少量在 GPU 下发布的自动跟踪软件项目(例如,POTRACE,您可以通过系统命令运行它们。我无法证明它们的质量。跟踪几乎总是需要一些人工监督来避免看起来像一堆破陶器的东西,但除非你尝试,否则你不会知道。我不会通过 PHP 触发跟踪器,而是使用 PHP 简单地将传入的图像保存到一个临时文件夹,然后通过 cronjob(一两个- 每分钟),分批浏览保存文件夹(您可以以这种方式调整它并避免将其用作对您的站点进行 DoS 攻击的方式)。
我正在考虑为即将到来的项目做一些稍微类似的事情(尽管与图形无关),并且我正在考虑在台式计算机上完成所有繁重的工作,这将获取所有传入的文件并在 FTP 传输之前对其进行处理回到服务器。我对在 Web 服务器上运行任何像这样的复杂资源密集型脚本感到有些紧张。
【讨论】:
Inkscape 绝对可以做到这一点
这里是它支持的格式列表What formats can Inkscape import/export?
当然也可以和命令行或者exec()命令一起使用Can Inkscape be used from the command line?
【讨论】:
Imagetracer 是一个免费的开源(公共领域)库和应用程序,可以在服务器端使用。免责声明:这些都是我做的。
您可以使用 ImageTracer.jar 来自
https://github.com/jankovicsandras/imagetracerjava
像这样使用 PHP:
<?php exec("java -jar ImageTracer.jar input.png outfilename output.svg"); ?>
您也可以在服务器端使用带有 Node.js 的 JavaScript 版本,示例代码如下:
https://github.com/jankovicsandras/imagetracerjs/tree/master/nodecli
https://github.com/jankovicsandras/imagetracerjs/blob/master/nodetest/nodetest.js
【讨论】:
PHP 不是图像编辑器。它是一个超文本预处理器。
您必须转到 serverfault.com,或者在某些图像处理资源上更好,并在那里请求一些可以使用 system() 命令从 PHP 运行的命令行实用程序。
【讨论】: