Server-side conversion of raster images to vector images

There are a small number of autotracing software projects released under GPU (for example, POTRACE that you could run via system commands. I can't attest to their quality. Tracing almost always requires some element of human supervision to avoid things looking like a mess of broken pottery, but you won't know until you try. Rather than triggering the tracer via PHP, I would use PHP simply to save incoming images to a temporary folder and then, through cronjob (one- or two-per-minute), crank through the holding folder in batches (you could pace it that way and avoid it being used as a way to DoS your site).

I'm thinking of doing something slightly similar (though not graphic related) for an upcoming project, and I'm considering doing all my heavy lifting on a desktop machine, which would fetch all incoming files and process them before FTPing them back to the server. I'm somewhat nervous about having any complex resource-intensive script like this running on a web server.


Definitelly you can do this with the Inkscape

here is the list of formats it supports What formats can Inkscape import/export?

and it can be of course used with the command line or exec() command Can Inkscape be used from the command line?


Imagetracer is a free and open source (Public Domain) library and application which can be used on the server side. Disclaimer: I made these.

You can use ImageTracer.jar from

https://github.com/jankovicsandras/imagetracerjava

like this with PHP:

<?php exec("java -jar ImageTracer.jar input.png outfilename output.svg"); ?>

You can also use the JavaScript version with Node.js on the server side, here's the example code:

https://github.com/jankovicsandras/imagetracerjs/tree/master/nodecli

https://github.com/jankovicsandras/imagetracerjs/blob/master/nodetest/nodetest.js