2010-07-07 6 views
3

Je souhaite convertir des images qui ont été téléchargées par l'utilisateur (dans différents formats et conditions) dans un format d'image vectorielle tel que .eps. Je travaille principalement en PHP.Conversion côté serveur d'images raster en images vectorielles

Quelles options existent?

+0

duplication possible de [Coverstion de SVG en PNG/JPEG/BMP et Vice Versa? ] (http://stackoverflow.com/questions/4021756/coverstion-of-svg-into-png-jpeg-bmp-and-vice-versa) – Gordon

Répondre

4

Il existe un petit nombre de projets de logiciels d'autotracing lancés sous GPU (par exemple, POTRACE que vous pouvez exécuter via les commandes du système.) Je ne peux pas attester de leur qualité. ressemblant à un tas de poterie cassée, mais vous ne saurez pas jusqu'à ce que vous essayez.Plutôt que de déclencher le traceur via PHP, j'utiliserais simplement PHP pour enregistrer les images entrantes dans un dossier temporaire, puis, par cronjob (un ou deux- par minute), lancez le dossier en plusieurs fois (vous pouvez le faire fonctionner de cette façon et éviter qu'il soit utilisé comme un moyen de FAIRE votre site)

Je pense à faire quelque chose de légèrement similaire (mais pas graphique liés) pour un projet à venir, et j'envisage faire tout mon gros travail sur une machine de bureau, qui irait chercher tous les fichiers entrants et les traiter avant de les renvoyer au serveur par FTP. Je suis un peu nerveux à l'idée d'avoir un script aussi complexe et gourmand en ressources fonctionnant sur un serveur web.

-7

PHP n'est pas un éditeur d'image. c'est hypertexte préprocesseur.
Vous devez passer à serverfault.com, ou même mieux sur certaines ressources de traitement d'image et demander là pour un utilitaire de ligne de commande qui peut être exécuté à partir de PHP en utilisant la commande system().

+3

Je comprends que PHP n'est pas un éditeur d'image. PHP peut s'interfacer avec de nombreuses librairies utiles telles que GD et ImageMagik sans avoir besoin de system(). –

+0

@Jon Je ne peux pas dire que GD est utile, mais en général - oui. Il peut même contrôler une presse hydraulique via le port COM. Cela ne signifie pas que les questions sur les presses hydrauliques conviennent ici. –

+1

@ Col.Shrapnel à moins que je ne manque quelque chose, PHP est Turing Complete, donc vous pouvez programmer n'importe quoi de calculable dessus, et estimer les vecteurs pour représenter une image raster est certainement calculable.Je ne vois pas non plus comment cette question est différente de la myriade d'autres questions qui ont "utiliser xxx library" comme réponse valide (par exemple "Quelle regex est-ce que j'utilise pour analyser le src des images sur cette page dans .Net?" -> "Vous devriez sauter les regex et utiliser le HtmlAgilityPack"). – jball

0

Imagetracer est une bibliothèque et une application gratuite et open source (domaine public) qui peut être utilisée côté serveur. Disclaimer: J'ai fait ceux-ci.

Vous pouvez utiliser ImageTracer.jar de

https://github.com/jankovicsandras/imagetracerjava

comme ça avec PHP:

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

Vous pouvez également utiliser la version JavaScript avec Node.js sur le serveur côté, voici l'exemple de code:

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