Densidade de imagens


[Home] [Dissertação] [Biba] [Linux] [Conjugue] [br.ispell] [axw3] [uplink]
Oi Roberto, faz um tempo eu tinha te levado umas provas de
impressao da BJC4200. Na falta de um software mais apropriado, eu
tinha usado o word para imprimir tres figuras, duas jpegs e uma
gif.

Quando eu via as figuras no X atraves do xv, as tres tinham
aproximadamente o mesmo tamanho (em centimetros). Quando eu as
imprimi atraves do word, uma jpeg e a gif ficavam pequenininhas,
e a outra jpeg permanecia mais ou menos com o mesmo tamanho (em
centimetros) que tinha no xv.

Fui agora imprimir outras figuras, mas quis antes estudar o
assunto. Olhei o header do jpeg, e reparei que o decimo-terceiro
byte e' uma flag. Quando ela vale 1, as duas palavras seguintes
especificam densidades em pixels por polegada na horizontal e na
vertical. Quando vale 2, em pixels por centimetro. Quando vale 0,
especificam apenas o aspect ratio.

Averiguei que, naquele jpeg que o word diminuiu, a flag vale 0, e
no outro 1. Assim, naquele que vale 1, o word respeitou o jpeg e
fez com que a imagem impressa tivesse o tamanho correto em
polegadas. Na outra jpeg e no gif, o word escolheu sozinho um
tamanho em polegadas, e ajustou a densidade de acordo com essa
escolha (o formato gif parece nao possuir uma maneira de
especificar densidades).

Para o xv, o tamanho "em polegadas" e' algo que nao faz
sentido. Ele nao sabe quantos pixels por polegada o display
apresenta, e quando vai exibir uma imagem de 300x200 pixels, ele
limita-se a mandar o X desenhar um retangulo de 300x200 pixels e
pinta cada um com a cor devida. E como aquelas tres imagens
tinham mais ou menos o mesmo tamanho em pixels, os seus tamanhos
em centimetros no display eram semelhantes.

No entanto a qualidade da imagem impressa depende diretamente da
densidade. Naquele jpeg que o word respeitou a densidade, chequei
que essa densidade era 96 pixels por polegada na horizontal e na
vertical, o que explica o resultado decepcionante, apesar de ter
sido usado um cartucho fotografico. Nas outras o resultado foi
bem melhor, porque a reducao fez aumentar a densidade em pixels
por polegada.

Se voce mandar o xv dividir por dois cada uma das dimensoes, ele
meramente vai dividir por dois o total de pixels na horizontal e
na vertical. Para isso, cada pixel na imagem reduzida sera'
calculado (eu acho) como uma media de alguns outros da imagem
original. O resultado visual disso pode ser bastante ruim, como
de fato a experiencia mostra.

No entanto, se voce quiser diminuir por dois cada dimensao medida
em centimetros (e nao em pixels), basta dobrar a densidade, sem
correr o risco de estragar a imagem (desde, e' claro, que o
device, no caso a impressora, suporte essa nova
densidade). Teoricamente seria possivel mexer manualmente no
header de uma imagem jpeg para especificar o tamanho em
centimetros que ela deve ter ao ser impressa, mas ainda nao
testei isso.

---

NOTA: nao posso fornecer as imagens jpeg de que fala o mail
porque sao proprietarias, e fazem parte da distribuicao do
3d-studio. Nao obstante, nao deve ser dificil encontrar outras
que difiram nessa flag. A imagem gif citada e' o detalhe do rosto
da imagem de Nossa Senhora de Guadalupe e esta' disponivel em
http://ng.netgate.net/~norberto/ftp.html