Como incorporar um gráfico de imagem com dimensões dimensionadas em um pdf sem efeitos de suavização?

2

Eu preciso produzir um gráfico de imagem de dados em pdf. Há um pequeno número de pixels nos dados (aproximadamente 100 x 100), portanto cada pixel é perceptível (não uma imagem suave). Eu tentei exportar um pdf com alguns programas de computação científica diferentes, mas quando vejo o pdf no OS X Preview ou no plugin pdf.js do Firefox, os dados parecem ruins. Cada pixel de dados individual parece ter sido dividido em cinco pixels ao longo de uma dimensão e três ao longo do outro (a proporção não é 1: 1 na figura) e esses subpixels têm cores ligeiramente diferentes, portanto os dados estão sendo desfocados . Eu tentei abrir o pdf no Inkscape e parece bem lá. A partir do Inkscape, determinei que os dados estão sendo incorporados como um png de 100x100 pixels, o que parece bem no Preview quando eu o extraio do pdf e o visualizo por conta própria.

Então, qual é a melhor opção para obter um pdf com uma plotagem de dados nítida? Por enquanto, vou criar um png com oversampled dos dados e incorporar isso em pdf. Eu não gosto muito dessa solução porque ela torna o tamanho do arquivo de figura desnecessariamente grande e ainda significa que a imagem está borrada quando você aplica zoom. Deve ser possível obter o pdf para renderizar uma imagem esticada sem suavizar? Meus programas de computação científica (Igor Pro e MATLAB) não estão formatando o pdf corretamente, ou o Preview e o Firefox não estão sendo processados corretamente, suavizando-o?

    
por ws_e_c421 02.02.2013 / 19:17

1 resposta

1

Ok, finalmente encontrei a resposta para essa pergunta em alguns posts na seção TeX do stackexchange: Minha imagem perfeita pixel fica desfocada quando compilado em LaTeX e O PNG incluso aparece borrado em PDF .

Resumo desses posts: muitos visualizadores de PDF têm uma configuração opcional para suavizar a saída de PDF ("Smooth text e line art" no OS X Preview, "Anti-alias text e line art" no Skim; alguns programas como o pdf do Firefox. A extensão js tem essa configuração sem uma maneira óbvia de desativá-la, outros como o visualizador de pdf do Google Chrome não parecem ter essa configuração, note que os nomes das configurações Preview e Skim são enganosos porque imagens rasterizadas, não apenas linhas, são suavizadas essa configuração está habilitada). Para os programas que possuem essa configuração, desabilitar a configuração faz com que a imagem incorporada pareça boa, mas outros aspectos do pdf (e outros PDFs) não ficarão tão bons (o texto será pixelizado, etc.). O formato PDF não tem uma opção interna para dizer ao programa visualizador que não aliasse um elemento (talvez um dia ...), então parece que, por enquanto, a solução que descrevi acima é na verdade o método que é tipicamente usado para incorporação de imagens pixelizadas em pdfs: sobreamostrar a imagem para a resolução necessária *.

A outra opção é converter a imagem em uma imagem vetorial de retângulos coloridos. Eu experimentei esse método com o Inkscape (use a opção trace do método clone tile para clonar um único retângulo de pixel sobre a imagem; veja esta página de documentação para alguns dos detalhes), mas como esse método requer a especificação de todas as coordenadas do objeto de retângulo de cada pixel, ele acaba sendo muito menos eficiente em termos de espaço em disco comparado à incorporação de um raster imagem.

* Uma maneira de fazer o oversample de uma imagem é usar ImageMagick com o flag de amostra definindo as dimensões para maior múltiplos das dimensões da imagem base. Note que você precisa de um \! após as novas dimensões se você quiser alterar a proporção (por exemplo, se esticar a imagem no pdf, você pode querer fazer com que cada pixel original tenha dez pixels de largura, mas apenas três pixels de altura).

    
por 03.02.2013 / 21:34