Remoção de alfa com o ImageMagick é ruim, mas apenas com um fundo branco

2

Estou tendo variações surpreendentes (para mim) na qualidade do antialiasing ao converter um PDF (com texto preto em branco apenas) para um PNG e removendo a transparência com o ImageMagick (versão 6.7.7.10 do Ubuntu 14.04).

Meu arquivo de entrada de amostra é o resultado da execução de pdflatex em

\documentclass[preview]{standalone}
\begin{document}
Hello, world!
\end{document}

A 300 dpi, o resultado é horrível (com um fundo branco, a adição de -background \#ffffff ou -background white produz uma saída visualmente indistinguível):

convert -density 300 -alpha remove -alpha off a.pdf 300-white.png

Háalgumanti-aliasing,masnãomuitobom,ealgumaslinhas(comoalinhahorizontalacariciadanoe)desapareceramcompletamente.

Aescolhadequalquercordiferentedebrancoproduzumresultadodecente.

convert-density300-background\#fffffe-alpharemove-alphaoffa.pdf300-fffffe.png

Curiosamente,arenderizaçãoémelhorembaixasresoluções(emboraaindanãosejaaideal)-pelomenosotextoélegível.

convert-density100-alpharemove-alphaoffa.pdf90-white.png

Emresoluçõesmaisaltas,arenderizaçãoaindaéclaramentefraca,maspelomenosaslinhascomeçamaaparecer.

convert-density750-alpharemove-alphaoffa.pdfa.png

  • Por que o antialiasing é tão ruim para preto no branco e perfeitamente bem com qualquer outra cor de fundo, mesmo que essa cor de fundo seja visualmente indistinguível do branco?
  • Se eu configurá-lo como parte de um processo automatizado em que alguém não estará por perto para inspecionar visualmente o resultado, quais parâmetros eu preciso evitar para obter bons resultados?
por Gilles 10.09.2015 / 20:36

1 resposta

5

É como quando o fundo é branco, o ImageMagick detecta que há apenas duas cores - preto e branco - e alterna para um modo de escala de cinza de PNG, daí o resultado feio:

Paralimitarafealdadedeaplicarbordasempretoebrancoasuavizaçãodeborda,épossíveldesativaroanti-aliasingcom+antialias:

convert-density300-alpharemove-alphaoff+antialiasa.pdf300-white.png

Agora,comoevitarousodomodo PNG em escala de cinza? Aqui está:

convert -density 300 -alpha remove -alpha off a.pdf png24:300-white-24.png

    
por 10.09.2015 / 22:36