Programaticamente ou não? Qual idioma, plataforma?
22420 Michael Petrotta 17/07/2009
Através de algum aplicativo ou através de comandos do sistema operacional? Se através do sistema operacional você poderia por favor dizer qual sistema operacional .. Obrigado
Mahesh Velaga
Respostas:
130
Existe um site onde você pode fazer upload de sua imagem e ver o resultado.
#!/bin/bashFile_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")exit1fiFile="${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
Comando de uma linha
Se você deseja converter muitos arquivos, também pode usar o seguinte comando de uma linha:
A imagem perde cor quando convertida de pnm para svg usando potrace. Existe alguma maneira de preservar a cor?
Coder
1
Olá @mundella. Eu sempre usei 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 ;-)
olibre
@olibre Existe alguma plataforma de pragmaticamente fazer as mesmas coisas
Ami Kamboj
1
Oi @AmiKamboj. Não tenho certeza de entender sua pergunta. Os comandos converte potraceestã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 ;-)
olibre 29/07
1
Eu usei praticamente todos os conversores on-line de x para svg por aí. O pacote potrace npm expulsou todos eles da água. É incrivel.
tsteve
59
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:
Usei o rastreamento ao vivo no Inkscape para recriar logotipos com originais perdidos há muito tempo. A menos que a versão mais recente tenha feito algumas melhorias, ela é um pouco imprevisível. Dito isto, também rastreei manualmente alguns logotipos no Inkscape e consegui muito bem.
este Potrace é muito preciso quando você sabe como usá-lo: mas não é multicolorido 1.) converta seu arquivo em BMP 2.) (para a parte exata) converte bmp em alta resolução (estique-o) 3.) colore as formas você deseja rastrear em preto 4.) converter 5.) alterar largura e altura para original 6.) apreciar o rastreamento preciso.
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.
Por que o voto negativo? Eu uso essa abordagem com muito sucesso. Pelo menos tenha a cortesia de explicar por que as pessoas podem se beneficiar de suas idéias.
Pancho
5
Seguir essas instruções apenas agrupa a imagem com SVG XML - ele não converte nada em dados do caminho.
Robert
@ Robert - obrigado pela informação, eu era alegremente ignorante, pois funcionou bem para os meus propósitos. No entanto, isso não prejudica o fato de o Inkscape ser capaz de executar uma conversão completa de PNG para SVG - e muito mais. Para ilustrar para qualquer pessoa interessada, alterei minha resposta para incluir um pequeno videoclipe explicativo.
Pancho
É mesmo assim? Eu verifiquei o SVG gerado e parece ter os dados do caminho, ao contrário do método mobilefish ...
dario_ramos
Há pessoas que votam contra isso de vez em quando, sem nenhuma causa justificável, e estou começando a formar a opinião de que é malicioso. Se realmente houver um motivo - não há problema, pare de ser preguiçoso e agregue algum valor a essa comunidade, fornecendo-o.
Pancho
15
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.
+1 para online-convert.com. Tentei agora com algumas silhuetas monocromáticas ... executadas na perfeição .. Também parece ser totalmente gratuito.
nedR
Sim um dos melhores conversores ... Obrigado
Jayd
1
Não sabia que o Illustrator tinha isso preparado. Tendo tudo como .ai já, isso me economizará uma tonelada de tempo.
Doyle Lewis
10
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
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 -flattensinalizador convertpara lidar com isso:
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 > 0teste. Você pode alternar entre os três alterando a extensão do arquivo, ou seja. o seguinte usa PBM :
Eu realmente trabalho como um encanto, mesmo em imagens complexas. Eu realmente aconselho esta ferramenta.
Atıfcan Ergin
Infelizmente não funcionou para mim.
adamj
Não funcionar bem se a imagem ter transparência
Genaut
Você não pode esperar que o script tire uma foto sua e obtenha um SVG perfeitamente em camadas, como resultado, não existe tal coisa. Se você tem uma forma simples e deseja obter o (s) caminho (s), isso é possível. Eu criei muitos ícones de fonte com essa página e nunca falhei para mim.
Thednp #
@thednp minha imagem saiu em preto e branco
iOSAndroidWindowsMobileAppsDev
7
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 .png
Image -> 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 RGB
Image -> 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.
Isso incorpora a imagem no SVG, não gráficos vetoriais reais
Paul Gobée
Isso converteu um dos meus pngs coloridos nos quais outros conversores online não foram capazes de converter corretamente. Eu pensei que estava funcionando, pois posso abri-lo no navegador, mas quando tentei abri-lo em outra ferramenta, ocorreu um erro. Talvez por causa do comentário indicado acima.
Vida
-1
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.
O Imagemagick funciona em outras plataformas, não apenas no 'Linux'.
Lunatik 24/07/12
25
Tecnicamente, isso funciona, no entanto, o arquivo svg gerado não é realmente um vetor gráfico - apenas contém o bitmap original "como está". Assim, quando você a amplia, ainda obtém a qualidade degradada de uma imagem rasterizada.
Erel Segal-Halevi
7
@archeyDevil não, isso não está "convertendo" em SVG, está "incorporando" o bitmap dentro de um SVG vazio. Não adianta ninguém.
Adam
4
@archeyDevil O título da pergunta é "converter ... para SVG". Sua resposta não se converte. Incorpora. PNG é um formato de bitmap, SVG é um formato vetorial. Diferença maciça. Embedding é inútil e não digno de um IMHO questão SO
Adam
3
Estou ciente de que não se converte. Eu fiz no entanto; publique isso para aqueles que não precisam de um vetor persay, mas precisam apenas de uma mudança rápida e suja entre os tipos de arquivos.
Respostas:
Existe um site onde você pode fazer upload de sua imagem e ver o resultado.
http://vectormagic.com/home
Mas se você deseja baixar sua imagem svg, você precisa se registrar. (Se você se registrar, você recebe 2 imagens de graça)
fonte
potrace
que não suporta PNG como arquivo de entrada, mas PNM .Portanto, primeiro
convert
de PNG para PNM:Explique as opções
potrace -s
=> O arquivo de saída é S VGpotrace -o file.svg
=> Grava a saída emfile.svg
Exemplo
Arquivo de entrada =
2017.png
Arquivo temporário =
2017.pnm
Arquivo de saída =
2017.svg
Roteiro
O ykarikos propõe um script png2svg.sh que melhorei:
Comando de uma linha
Se você deseja converter muitos arquivos, também pode usar o seguinte comando de uma linha:
Veja também
Veja também esta boa comparação de conversores de varredura para vetor na Wikipedia.
fonte
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
epotrace
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
fonte
Você pode querer olhar para potrace .
fonte
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.
fonte
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
fonte
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.
fonte
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
sinalizadorconvert
para lidar com isso: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 umpixel > 0
teste. Você pode alternar entre os três alterando a extensão do arquivo, ou seja. o seguinte usa PBM :fonte
Você também pode tentar http://image.online-convert.com/convert-to-svg
Eu sempre o uso para minhas necessidades.
fonte
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.
fonte
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.
fonte
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.
fonte
http://online-converting.com/image/convert-to-svg/ funcionou bem para converter para svg
fonte
potrace
na linha de comando - faz-me pergunto o que o site usa internamente ...Esta ferramenta está funcionando muito bem no momento.
http://www.mobilefish.com/services/image2svg/image2svg.php
fonte
Se você estiver em algum sistema Linux, o imagemagick é perfeito. Ou seja,
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.
Apenas uma dica para se você deseja passar por muitos arquivos; um loop usando truques básicos de shell ..
Isso remove o jpg e adiciona png, que indica ao que você deseja converter.
fonte