Como faço para converter um PNG para SVG usando um software?

29

Eu gostaria de poder cortar completamente as estruturas químicas SVG (veja esta pergunta ), criadas usando o MarvinSketch e acho que pensei em uma solução; Eu uso o MarvinSketch para criar um arquivo PNG grande, recortá-lo usando o GIMP e depois converter o PNG para SVG . Por isso, gostaria de saber se alguém conhece um software gratuito que eu possa instalar (não gosto de usar conversores on-line, pois sempre desconfio de malware) no Ubuntu para uma conversão PNG-> SVG de alta qualidade.

BH2017
fonte
1
OK, como seria um código para isso? Tentei reverter o código como você disse, pelo que sei (eu sou um código noob). Este é o código que eu usei`#{INKSCAPE_PATH} -z -f #{Guanidine.png} -w #{width} -j -e #{Guanidine.svg}
BH2017
1
Depois de fazer cd ~/Documents/Chem Structures/qual é o diretório em que os arquivos estão.
BH2017
1
sudo apt-get install imagemagick e salve este script #! / bin / bash enquanto [$ # -gt 0]; do picture = $ 1 png_file = echo "$picture" | sed 's/\.\w*$/.png/' / usr / bin / converter "$ picture" png: "$ png_file" feito em ~ / .local / share / nautilus / scripts e lembre-se de torná-lo executável e clique com o botão direito do mouse em seguida nos scripts e em qualquer outro lugar você salvar esse script sob
zeitue
1
OK, como eu disse eu sou um noob então você vai ter que explicar isso melhor como tudo o que eu entendi foisudo apt-get install imagemagick
BH2017
2
No entanto, você deve estar ciente de que há uma diferença fundamental entre gráficos vetoriais como SVG e pixels como PNG. Depois de perder as informações vetoriais, não há como (sem perda) restaurar essas informações. Portanto, mesmo que você "converta" de PNG para SVG, basicamente não faz mais nada como incorporar os gráficos de pixels (codificados em base64) em um arquivo de gráficos vetoriais SVG. O convertcomando é ainda pior: coloca um círculo para cada pixel dos gráficos de pixel, o que leva a tamanhos de arquivo muito grandes. Por isso, tentaria cortar diretamente o arquivo SVG.
soulsource

Respostas:

24

Então você está procurando raster para conversor de gráficos vetoriais / rastreador . potracee autotraceambos estão no repositório Ubuntu. Eu tentei potraceantes, o que deu bons resultados com as opções padrão. Pelo que me lembro, ambas as ferramentas não suportam formatos compactados como entrada, apenas imagens de bitmap .

Veja exemplos do Potrace

Potrace : utilitário para transformar bitmaps em gráficos vetoriais

O potrace é um utilitário para rastrear um bitmap, o que significa transformar um bitmap em uma imagem escalável e suave. A entrada é um bitmap (formato PBM, PGM, PPM ou BMP) e a saída padrão é um arquivo PostScript (EPS) encapsulado. Um uso típico é criar arquivos EPS a partir de dados digitalizados, como logotipos de empresas ou universidades, anotações manuscritas etc. A imagem resultante não é "irregular" como um bitmap, mas suave. Em seguida, ele pode ser renderizado em qualquer resolução.

Comando:

potrace -s inputfile

AutoTrace : conversor de bitmap para gráficos vetoriais

O AutoTrace é um programa para converter bitmaps em gráficos vetoriais. O objetivo do projeto AutoTrace é o desenvolvimento de um aplicativo disponível gratuitamente, semelhante ao CorelTrace ou Adobe Streamline. Em alguns aspectos, já é melhor. Originalmente criado como um plug-in para o GIMP, o AutoTrace agora é um programa independente.

Comando:

autotrace -output-format svg inputfile

Referências:

  • man potrace
  • man autotrace

Atualizar

user.dz
fonte
1
Corri autotrace -vector svg inputfile(depois de alterar o arquivo de entrada para fenfluramine.png) e não funcionou, também mudei o formato de saída para svg não funcionou. Eu instalei.
BH2017
1
Corri potrace -s inputfile(com o arquivo de entrada sendo fenfluramine.png novamente) e ele me deu este erro: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, você deve criar uma imagem PNM ou BMP em vez de PNG. ambas as ferramentas não suportam formatos compactados como entrada (PNG, JPEG ...), apenas imagens Bitmap (PNM, BMP, ...). Se você não pode exportar outro PNG, tente convertê-lo primeiro em BMP.
User.dz 23/05
1
Bem, então você não respondeu minha pergunta. O MarvinSketch pode exportar para o BMP, mas seu plano de fundo não é transparente, por isso sugeri o formato PNG em primeiro lugar. Não pode fazer PNM.
BH2017
2
Aha, funcionou. Obrigado. Eu pensei que, como o BMP não era transparente, qualquer resultado também não seria.
BH2017 23/05
19

O Inkscape possui uma ferramenta incrível de rastreamento automático.

  1. Instale o Inkscape usando sudo apt-get install inkscape
  2. Importe sua imagem
  3. Selecione sua imagem
  4. Na barra de menus, selecione Path -> Trace Bitmap Item
  5. Ajuste os parâmetros de rastreamento conforme necessário

Verifique o tutorial de rastreamento para obter mais informações.

Quando estiver confortável com as opções de rastreamento. Você pode automatizá-lo usando a CLI do Inkscape .

Hussein El Motayam
fonte
5
+1, obrigado. É um prazer saber que o Inkscape integrou potracefuncionalidade na GUI, conforme indicado na referência mencionada.
user.dz
5
Esta é a resposta correta, pois o potrace não suporta importação de .png e é fácil ter dificuldades com transparência, etc., com conversões.
Brianlmerritt 4/17
1
Além disso, o Gimp é capaz de rastrear imagens coloridas, o que o potrace parece perder.
sorria
8

Use o convertcomando no terminal:

Por exemplo : convert EXAMPLE.png EXAMPLE.svg

Aqui estão algumas informações da página de manual:

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
fonte
3
Isso incorpora uma imagem rasterizada no SVG em vez de converter em uma imagem vetorial.
bk138
1
Muito obrigado ... isto é exatamente o que eu estava procurando ...
Dan Ortega
2

Acabei de usar o gimp agora com resultados surpreendentes. Eu usei o potrace pela primeira vez, mas tudo o que consegui foi uma imagem toda em preto com muita distorção. Talvez eu não o tenha usado corretamente, mas quando tentei exportar o gimp como "eps" (file_name.eps), tudo foi feito. Tudo o que tenho a fazer foi revisar a configuração da resolução com um valor de 300. É isso.

Ivan Cervantes
fonte