25 maio 2008

Convertendo bitmaps em vectores gráficos

Se calhar já te aconteceu teres a necessidade de obteres uma imagem de alta resolução com boa qualidade, duma outra de baixa resolução. É certo que podes usar o Gimp para trabalhar a imagem e aplicar-lhe algum filtro para teres algo com melhor qualidade. Mas também podes usar um pequeno programinha na linha de comandos para obteres um excelente resultado. Refiro-me ao potrace desenvolvido pelo Peter Selinger, um Professor de matemática na Universidade de Dalhousie.
Para usares o potrace só tens que lhe dar uma imagem como entrada ou input e o resultado aparecerá no formato svg ou no formato pdf.

potrace -s image.bmp

Aqui um exemplo dum imagem em bitmap à esquerda e na direita o resultado obtido pelo potrace, numa imagem vectorial:



Para quem tem testado vários outros programas, alguns bem pagos, tem ficado surpreendido com a qualidade do potrace, muitas vezes superior aos tais programas pagos. Resumindo, o potrace tem boas qualidades: rápido, fácil de usar pela linha de comandos e pode ser usado a partir do Inkspace (Path, Trace Bitmap menu ou Shift+Alt+B). Na nova versão do Inkspace, a 0.46, o potrace já trabalha com cores, ao contrário das anteriores que apenas trabalhava com preto e branco. Como único senão, o potrace não suporta imagens png com entrada, mas isso é coisa fácil de ultrapassar com o imagemagic ou com a programa netpbm.

Um exemplo usando um aplicativo do netpbm, o pngtopnm que converte uma entrada .png e com um output.svg:

cat imagem_entrada.png | pngtopnm | potrace -s > nova_imagem.svg

Se se preferir usar as ferramentas do imagemagic para fazer uma conversão duma imagem de entrada, seria algo assim.

convert imagem_entrada.png imagem_saida.bmp | potrace -s > nova_imagem.svg

O potrace está disponível para Debian e derivados através dos seus repositórios.


Fonte: DPOTD

comentários:

muito bom!