Como converter uma imagem PNG para SVG?
Como converter uma imagem PNG para SVG?
Respostas:
Existe um site onde você pode fazer upload de sua imagem e ver o resultado.
Mas se você deseja baixar sua imagem svg, você precisa se registrar. (Se você se registrar, você recebe 2 imagens de graça)
potrace
que não suporta PNG como arquivo de entrada, mas PNM .
Portanto, primeiro convert
de PNG para PNM:
convert file.png file.pnm # PNG to PNM
potrace file.pnm -s -o file.svg # PNM to SVG
potrace -s
=> O arquivo de saída é S VGpotrace -o file.svg
=> Grava a saída em file.svg
convert 2017.png 2017.pnm
Arquivo temporário = 2017.pnm
potrace 2017.pnm -s -o 2017.svg
O ykarikos propõe um script png2svg.sh que melhorei:
#!/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
Se você deseja converter muitos arquivos, também pode usar o seguinte comando de uma linha:
( 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 )
Veja também esta boa comparação de conversores de varredura para vetor na Wikipedia.
potrace
ícones preto e branco. Obrigado pelo seu feedback! Mas desculpe, não faço ideia de como preservar cores ... Ho! Tenho uma ideia: se a sua imagem original tiver poucas cores (digamos três cores únicas), você poderá criar três imagens iniciais (uma para cada cor). Em seguida, converta para SVG. E, finalmente, mescle os três conteúdos SVG em um arquivo (o SVG é baseado em XML). Espero que isso poderia ajudar ... Felicidades ;-)
convert
e potrace
estão disponíveis em várias plataformas. Estou usando computadores baseados em Linux. Acabei de usar esses comandos ontem para produzir um SVG a partir de um papel digitalizado. Você pode ver o resultado: cpp-frug.github.io/images/Cpp-President-2017.svg Por favor, explique mais sobre o seu destino. O que você quer / quer saber? Qual é a sua necessidade / desejo? Cheers ;-)
Um png é um estilo de imagem de bitmap e um SVG é um design gráfico baseado em vetor que suporta bitmaps; portanto, não é como se convertesse a imagem em vetores, apenas uma imagem incorporada em um formato baseado em vetor. Você pode fazer isso usando http://www.inkscape.org/, que é gratuito. Ele seria incorporado, no entanto, também possui um mecanismo semelhante ao Live Trace, que tentará convertê-lo em caminhos, se você desejar (usando potrace). Veja o rastreamento ao vivo no adobe illustrator (comercial) é um exemplo:
http://graphicssoft.about.com/od/illustrator/ss/sflivetrace.htm
Você pode querer olhar para potrace .
Fácil
Como você verá, se você quiser fazer um monte de outras coisas inteligentes .svg, pode fazê-lo usando o Inkscape também.
Uma observação não técnica: eu pessoalmente prefiro esse método a ofertas "gratuitas" de sites, pois, além de exigir o registro, fazendo o upload da imagem, em todos os aspectos práticos, a pessoa está dando a imagem ao proprietário do site.
com o adobe illustrator:
Abra o Adobe Illustrator. Clique em "Arquivo" e selecione "Abrir" para carregar o arquivo .PNG no programa. Edite a imagem conforme o necessário antes de salvá-la como arquivo .SVG. Clique em "Arquivo" e selecione "Salvar como". Crie um novo nome de arquivo ou use o nome existente. Verifique se o tipo de arquivo selecionado é SVG. Escolha um diretório e clique em "Salvar" para salvar o arquivo.
ou
conversor online http://image.online-convert.com/convert-to-svg
eu prefiro AI porque você pode fazer as alterações necessárias
boa sorte
Para minha surpresa, potrace se vê, só pode processar preto e branco. Isso pode ser bom para o caso de uso, mas alguns podem considerar problemática a falta de rastreamento de cores.
Pessoalmente, tive resultados satisfatórios com o Vector Magic
Ainda não é perfeito.
Uma observação para aqueles que usam potrace e imagemagick , converter imagens PNG com transparência em PPM não parece funcionar muito bem. Aqui está um exemplo que usa o -flatten
sinalizador convert
para lidar com isso:
sudo apt-get install potrace imagemagick
convert -flatten input.png output.ppm
potrace -s output.ppm -o output.svg
rm output.ppm
Outro fenômeno interessante é que você pode usar PPM (256 * 3 cores, por exemplo, RGB), PGM (256 cores, por exemplo, escala de cinza) ou PBM (2 cores, por exemplo, somente branco ou preto) como formato de entrada. Pelas minhas observações limitadas, parece que nas imagens sem serrilhado, o PPM e o PGM (que produzem SVGs idênticos até onde eu vejo) diminuem a área colorida e o PBM expande a área colorida (embora apenas um pouco). Presumivelmente, essa é a diferença entre um pixel > (256 / 2)
teste e um pixel > 0
teste. Você pode alternar entre os três alterando a extensão do arquivo, ou seja. o seguinte usa PBM :
sudo apt-get install potrace imagemagick
convert -flatten input.png output.pbm
potrace -s output.pbm -o output.svg
rm output.pbm
Você também pode tentar http://image.online-convert.com/convert-to-svg
Eu sempre o uso para minhas necessidades.
Acabei de encontrar esta pergunta e respostas, pois estou tentando fazer a mesma coisa! Eu não queria usar algumas das outras ferramentas mencionadas. (Não queira dar meu e-mail nem pagar). Descobri que o Inkscape (v0.91) pode fazer um bom trabalho. Este tutorial é rápido e fácil de entender.
É tão simples quanto selecionar seu bitmap no Inkskape e Shift + Alt + B.
Dependendo do motivo pelo qual você deseja converter de .png para .svg, talvez você não precise enfrentar o problema. A conversão de .png (raster) para .svg (vector) pode ser uma dor se você não estiver familiarizado com as ferramentas disponíveis ou se não for um designer gráfico por profissão.
Se alguém lhe enviar um arquivo grande e de alta resolução (por exemplo, 1024x1024), você poderá redimensioná-lo para praticamente o tamanho que desejar no GIMP. Muitas vezes, você terá problemas para redimensionar uma imagem se a resolução (número de pixels por polegada) for muito baixa. Para corrigir isso no GIMP, você pode:
File -> Open
: seu arquivo .pngImage -> Image Properties
: verifique a resolução e o espaço de cores. Você quer uma resolução em torno de 300 ppi. Na maioria dos casos, você deseja que o espaço de cores seja RGB.Image -> Mode
: definido como RGBImage -> Scale Image
: deixe o tamanho em branco, defina e a resolução Y para 300 ou superior. Hit Scale.Image -> Scale Image
: a resolução agora deve ser 300 e agora você pode redimensionar a imagem para praticamente o tamanho que desejar.Não é tão fácil quanto redimensionar um arquivo .svg, mas definitivamente mais fácil e rápido do que tentar converter um .png em um .svg, se você já possui uma imagem grande e de alta resolução.
Estou assumindo que você deseja escrever um software para fazer isso. Para fazer isso ingenuamente, basta encontrar linhas e definir os vetores. Para fazer isso de forma inteligente, você tenta ajustar formas ao desenho (ajuste do modelo). Além disso, você deve tentar determinar regiões com formato de bit (regiões que não podem modelar com vergonha ou aplicar texturas. Eu não recomendaria seguir esse caminho, pois isso levará um pouco de tempo e exigirá um pouco de gráficos e conhecimentos de visão computacional. No entanto, a saída será muito e dimensionada muito melhor do que a saída original.
http://online-converting.com/image/convert-to-svg/ funcionou bem para converter para svg
potrace
na linha de comando - faz-me pergunto o que o site usa internamente ...
Esta ferramenta está funcionando muito bem no momento.
Se você estiver em algum sistema Linux, o imagemagick é perfeito. Ou seja,
convert somefile.png somefile.svg
Isso funciona com montes de diferentes formatos.
Para outras mídias, como vídeos e uso de áudio (ffmpeg), eu sei que você declarou claramente png para svg; Ainda está relacionado à mídia.
ffmpeg -i somefile.mp3 somefile.ogg
Apenas uma dica para se você deseja passar por muitos arquivos; um loop usando truques básicos de shell ..
for f in *.jpg; do convert $f ${f%jpg}png; done
Isso remove o jpg e adiciona png, que indica ao que você deseja converter.