Comment convertir un PNG en SVG à l'aide d'un logiciel?

29

J'aimerais pouvoir recadrer complètement (voir cette question ) les structures chimiques SVG qui ont été créées à l'aide de MarvinSketch et je pense que j'aurais pu penser à une solution; J'utilise MarvinSketch pour créer un gros fichier PNG, puis le recadrer à l'aide de GIMP , puis convertir le PNG en SVG . Par conséquent, j'aimerais savoir si quelqu'un connaît un logiciel gratuit que je peux installer (je n'aime pas utiliser des convertisseurs en ligne car je me méfie toujours des logiciels malveillants) sur Ubuntu pour une conversion PNG-> SVG de haute qualité.

BH2017
la source
1
OK à quoi ressemblerait un code pour ça? J'ai essayé d'inverser le code comme vous l'avez dit, à ma connaissance (je suis un noob de code). C'est le code que j'ai utilisé`#{INKSCAPE_PATH} -z -f #{Guanidine.png} -w #{width} -j -e #{Guanidine.svg}
BH2017
1
Après avoir fait cd ~/Documents/Chem Structures/quel est le répertoire dans lequel se trouvent les fichiers.
BH2017
1
sudo apt-get install imagemagick puis enregistrez ce script #! / bin / bash while [$ # -gt 0]; faire image = $ 1 png_file = echo "$picture" | sed 's/\.\w*$/.png/' / usr / bin / convertir "$ picture" png: "$ png_file" shift fait dans ~ / .local / share / nautilus / scripts et n'oubliez pas de le rendre exécutable puis faites un clic droit puis des scripts puis quoi que ce soit vous enregistrez ce script sous
zeitue
1
OK, comme je l'ai dit, je suis un noob, vous devrez donc expliquer cela mieux que tout ce que j'ai compris étaitsudo apt-get install imagemagick
BH2017
2
Vous devez néanmoins être conscient qu'il existe une différence fondamentale entre les graphiques vectoriels comme SVG et les graphiques pixel comme PNG. Une fois que vous avez perdu les informations vectorielles, il n'y a aucun moyen (sans perte) de les restaurer. Donc, même si vous "convertissez" de PNG en SVG, vous ne faites rien d'autre que d'incorporer les graphiques en pixels (encodés en base64) dans un fichier graphique vectoriel SVG. La convertcommande est encore pire: elle place un cercle pour chaque pixel des graphiques de pixels, ce qui conduit à de très grandes tailles de fichier. J'essaierais donc de couper directement le fichier SVG.
soulsource

Réponses:

24

Vous recherchez donc un convertisseur / traceur de trame en vecteur . & les deux se trouvent dans le référentiel Ubuntu. Moi-même, j'ai essayé avant ce qui a donné de bons résultats avec des options par défaut. Si je me souviens bien, les deux outils ne prennent pas en charge les formats compressés en entrée, uniquement les images bitmap .potraceautotracepotrace

Voir des exemples de Potrace

Potrace : utilitaire pour transformer des bitmaps en graphiques vectoriels

potrace est un utilitaire pour tracer une image bitmap, ce qui signifie, transformer une image bitmap en une image fluide et évolutive. L'entrée est un bitmap (format PBM, PGM, PPM ou BMP) et la sortie par défaut est un fichier PostScript encapsulé (EPS). Une utilisation typique consiste à créer des fichiers EPS à partir de données numérisées, telles que des logos d'entreprise ou d'université, des notes manuscrites, etc. L'image résultante n'est pas "irrégulière" comme une image bitmap, mais lisse. Il peut ensuite être rendu à n'importe quelle résolution.

Commander:

potrace -s inputfile

AutoTrace : convertisseur de bitmap en graphiques vectoriels

AutoTrace est un programme pour convertir des bitmaps en graphiques vectoriels. Le but du projet AutoTrace est le développement d'une application gratuite similaire à CorelTrace ou Adobe Streamline. À certains égards, c'est déjà mieux. Initialement créé en tant que plugin pour GIMP, AutoTrace est maintenant un programme autonome.

Commander:

autotrace -output-format svg inputfile

Les références:

  • man potrace
  • man autotrace

Mise à jour

user.dz
la source
1
J'ai couru autotrace -vector svg inputfile(après avoir changé le fichier d'entrée en fenfluramine.png) et cela n'a pas fonctionné, j'ai également changé le format de sortie en svg ne fonctionnait pas. Je l'ai installé.
BH2017
1
J'ai couru potrace -s inputfile(avec le fichier d'entrée étant fenfluramine.png à nouveau) et cela m'a donné cette erreur:potrace: /home/fusion809/Documents/Chem Structures/Fenfluramine.png: file format not recognized Possible input file formats are: pnm (pbm, pgm, ppm), bmp.
BH2017
1
@BrentonHorne, vous devez créer une image PNM ou BMP au lieu de PNG. les deux outils ne prennent pas en charge les formats compressés en entrée (PNG, JPEG ...), uniquement les images Bitmap (PNM, BMP, ...). Si vous ne pouvez pas exporter d'autres fichiers PNG, essayez de les convertir en BMP.
user.dz
1
Eh bien, vous n'avez pas répondu à ma question. MarvinSketch peut exporter vers BMP mais son arrière-plan n'est pas transparent, c'est pourquoi j'ai suggéré le format PNG en premier lieu. Il ne peut pas faire de PNM.
BH2017,
2
Aha, cela a fonctionné. Merci. Je pensais que le BMP n'était pas transparent, aucun résultat ne le serait aussi.
BH2017,
19

Inkscape dispose d'un formidable outil de traçage automatique.

  1. Installez Inkscape à l'aide de sudo apt-get install inkscape
  2. Importez votre image
  3. Sélectionnez votre image
  4. Dans la barre de menus, sélectionnez Path -> Trace Bitmap Item
  5. Ajustez les paramètres de traçage selon vos besoins

Consultez leur didacticiel de traçage pour plus d'informations.

Une fois que vous êtes à l'aise avec les options de traçage. Vous pouvez l'automatiser à l'aide de l' interface CLI d'Inkscape .

Hussein El Motayam
la source
5
+1, merci. Heureux d'apprendre qu'Inkscape a intégré des potracefonctionnalités dans l'interface graphique comme indiqué dans la référence que vous mentionnez.
user.dz
5
C'est la bonne réponse car potrace ne prend pas en charge l'importation .png, et il est facile de rencontrer des problèmes de transparence, etc. avec les conversions.
brianlmerritt
1
Gimp est également capable de tracer des images en couleur, ce que Potrace semble manquer.
sourire
8

Utilisez la convertcommande dans le terminal:

Par exemple : convert EXAMPLE.png EXAMPLE.svg

Voici quelques informations de la page de manuel:

convert(1) - Linux man page

Name

convert - convert between image formats as well as resize an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample, and much more.

Synopsis

convert [input-options] input-file [output-options] output-file

CPH
la source
3
Cela incorpore une image raster dans le SVG au lieu de la convertir en image vectorielle.
bk138
1
Merci beaucoup ... c'est exactement ce que je cherchais ...
Dan Ortega
2

Je viens d'utiliser gimp en ce moment avec des résultats incroyables. J'ai d'abord utilisé la potrace mais tout ce que j'ai obtenu était une image tout en noir avec beaucoup de distorsion. Peut-être que je ne l'ai pas utilisé correctement mais quand j'ai essayé avec gimp d'exporter simplement en "eps" (nom_fichier.eps), tout a été fait. Tout ce que j'ai à faire était de le revoir en réglant la résolution avec une valeur de 300. C'est tout.

Ivan Cervantes
la source