web-dev-qa-db-fra.com

Comment convertir une image PNG en SVG?

Comment convertir une image PNG en SVG?

266
user199337

Il existe un site Web sur lequel vous pouvez télécharger votre image et voir le résultat.

http://vectormagic.com/home

Mais si vous souhaitez télécharger votre image svg, vous devez vous enregistrer. (Si vous vous inscrivez, vous obtenez 2 images gratuitement)

130
FrankkieNL

potrace fait ne prend pas en charge PNG en tant que fichier d'entrée, mais PNM .
Donc, d'abord convert de PNG à PNM:

_convert file.png file.pnm        # PNG to PNM
potrace file.pnm -s -o file.svg  # PNM to SVG
_

Expliquer les options

  • _potrace -s_ => Le fichier de sortie est S VG
  • _potrace -o file.svg_ => Écrire la sortie dans _file.svg_

Exemple

Fichier d'entrée = _2017.png_ Input file

_convert 2017.png 2017.pnm
_

Fichier temporaire = 2017.pnm

_potrace 2017.pnm -s -o 2017.svg
_

Fichier de sortie = _2017.svg_ Output file

Scénario

ykarikos == propose un script png2svg.sh == que j'ai amélioré:

_#!/bin/bash

File_png="${1?:Usage: $0 file.png}"

if [[ ! -s "$File_png" ]]; then
  echo >&2 "The first argument ($File_png)"
  echo >&2 "must be a file having a size greater than zero"
  ( set -x ; ls -s "$File_png" )
  exit 1
fi

File="${File_png%.*}"

convert "$File_png" "$File.pnm"        # PNG to PNM
potrace "$File.pnm" -s -o "$File.svg"  # PNM to SVG
rm "$File.pnm"                         # Remove PNM
_

Commande d'une ligne

Si vous souhaitez convertir plusieurs fichiers, vous pouvez également utiliser la commande d'une ligne suivante:

_( set -x ; for f_png in *.png ; do f="${f_png%.png}" ; convert "$f_png" "$f.pnm" && potrace "$f.pnm" -s -o "$f.svg" ; done )
_

Voir également

Voir aussi cette bonne comparaison de convertisseurs raster en vecteur sur Wikipedia.

122
olibre

Un png est un style d'image bitmap et un SVG est un graphisme vectoriel qui prend en charge les bitmaps. Il ne s'agit donc pas d'une conversion de l'image en vecteurs, mais simplement d'une image intégrée dans un format vectoriel. Vous pouvez le faire en utilisant http://www.inkscape.org/ qui est gratuit. Il l’intégrera, mais il a aussi un moteur de type Live Trace qui essaiera de le convertir en chemins si vous le souhaitez (en utilisant potrace). Voir trace en direct dans Adobe illustrator (commericial) en est un exemple:

http://graphicssoft.about.com/od/illustrator/ss/sflivetrace.htm

59
Keith Adler

Vous voudrez peut-être regarder potrace .

28

Facile

  1. Téléchargez Inkscape (c'est totalement gratuit)
  2. Suivez les instructions de ce court métrage vidéo youtube

Comme vous le verrez, si vous voulez faire beaucoup d'autres astuces .svg, vous pouvez aussi le faire en utilisant Inkscape.

Observation non technique: je préfère personnellement cette méthode aux offres de sites Web "gratuites" car, en plus de nécessiter souvent un enregistrement, en téléchargeant l'image, dans la pratique, on donne cette image au propriétaire du site.

18
Pancho

avec illustrateur Adobe:

Ouvrez Adobe Illustrator. Cliquez sur "Fichier" et sélectionnez "Ouvrir" pour charger le fichier .PNG dans le programme.Modifiez l'image si nécessaire avant de l'enregistrer en tant que fichier .SVG. Cliquez sur "Fichier" et sélectionnez "Enregistrer sous". Créez un nouveau nom de fichier ou utilisez le nom existant. Assurez-vous que le type de fichier sélectionné est SVG. Choisissez un répertoire et cliquez sur "Enregistrer" pour enregistrer le fichier.

ou

convertisseur en ligne http://image.online-convert.com/convert-to-svg

je préfère l'IA car vous pouvez apporter les modifications nécessaires

bonne chance

15
JayD

À ma grande surprise, potrace s'avère ne pouvoir traiter que du noir et blanc. Cela peut convenir à votre cas d’utilisation, mais certains jugeront peut-être problématique le manque de traçage des couleurs.

Personnellement, j'ai eu des résultats satisfaisants avec Vector Magic

Ce n'est toujours pas parfait.

10
cavalcade

Une note à ceux qui utilisent potrace et imagemagick , convertissant PNG images avec transparence à PPM n'a pas t semble fonctionner très bien. Voici un exemple qui utilise le drapeau -flatten sur convert pour gérer ceci:

Sudo apt-get install potrace imagemagick
convert -flatten input.png output.ppm
potrace -s output.ppm -o output.svg
rm output.ppm

Un autre phénomène intéressant est que vous pouvez utiliser PPM (256 * 3 couleurs, c.-à-d. RVB), PGM (256 couleurs, c.-à-d. En niveaux de gris) ou - PBM (2 couleurs, c'est-à-dire blanc ou noir uniquement) comme format d'entrée. D'après mes observations limitées, il semblerait que sur les images anti-aliasées, PPM et PGM (qui produisent identique SVG aussi loin que je peux voir) rétrécit la zone colorée et PBM étend la zone colorée (bien que très peu). Vraisemblablement, c'est la différence entre un test pixel > (256 / 2) et un test pixel > 0. Vous pouvez basculer entre les trois en modifiant l’extension du fichier, c.-à-d. l'utilisation suivante PBM :

Sudo apt-get install potrace imagemagick
convert -flatten input.png output.pbm
potrace -s output.pbm -o output.svg
rm output.pbm
9
Bardi Harborow

Vous pouvez également essayer http://image.online-convert.com/convert-to-svg

Je l'utilise toujours pour mes besoins.

7
thednp

Je viens de trouver cette question et les réponses alors que j'essaie de faire la même chose! Je ne voulais pas utiliser certains des autres outils mentionnés. (Je ne veux pas donner mon email, et je ne veux pas payer). J'ai constaté qu'Inkscape (v0.91) peut faire un très bon travail. Ce tutoriel est rapide et facile à comprendre.

C'est aussi simple que de sélectionner votre bitmap dans Inkskape et Maj + Alt + B.

Edge Detection with Inksape Trace bitmap tool based on potrace

7
Dai Bok

Selon pourquoi vous souhaitez convertir les fichiers .png en .svg, il se peut que vous n'ayez pas à passer par le problème. La conversion de .png (raster) à .svg (vecteur) peut s'avérer difficile si vous ne connaissez pas bien les outils disponibles ou si vous n'êtes pas un graphiste de métier.

Si quelqu'un vous envoie un fichier volumineux à haute résolution (par exemple, 1024x1024), vous pouvez le redimensionner à peu près à la taille souhaitée dans GIMP. Vous aurez souvent des problèmes à redimensionner une image si la résolution (nombre de pixels par pouce) est trop faible. Pour rectifier cela dans GIMP, vous pouvez:

  1. File -> Open: votre fichier .png
  2. Image -> Image Properties: vérifiez la résolution et l'espace colorimétrique. Vous voulez une résolution d'environ 300 ppp. Dans la plupart des cas, vous souhaitez que l'espace colorimétrique soit RVB.
  3. Image -> Mode: réglé sur RGB
  4. Image -> Scale Image: laissez la taille seule, la résolution et la résolution Y sur 300 ou plus. Hit Scale.
  5. Image -> Scale Image: la résolution devrait maintenant être 300 et vous pouvez maintenant redimensionner l'image à la taille souhaitée.

Pas aussi simple que de redimensionner un fichier .svg, mais certainement plus facile et plus rapide que d'essayer de convertir un fichier .png en un fichier .svg, si vous avez déjà une grande image haute résolution.

4
Brian D

Je suppose que vous souhaitez écrire un logiciel pour le faire. Pour le faire naïvement, il vous suffirait de trouver des lignes et de définir les vecteurs. Pour le faire intelligemment, vous essayez d’adapter des formes au dessin (ajustement du modèle). De plus, vous devriez essayer de déterminer les régions bitmap (des régions que vous ne pouvez pas modéliser de manière factice ou en appliquant des textures. Je ne recommanderais pas cette voie, car cela prendra un peu de temps et nécessitera un peu de connaissances en graphisme et en vision par ordinateur. Cependant, la sortie sera beaucoup mieux mise à l’échelle que votre sortie originale.

2
monksy

http://online-converting.com/image/convert-to-svg/ a bien fonctionné pour la conversion en svg

2
eagor

Cet outil fonctionne très bien en ce moment.

http://www.mobilefish.com/services/image2svg/image2svg.php

0
alejandro