Gerando jpeg progressivo com imageio

Segue um exemplo de como fazer para gerar Jpeg progressivo com a api imageio:


ImageWriteParam param = writer.getDefaultWriteParam();

param.setCompressionMode( ImageWriteParam.MODE_EXPLICIT );

param.setCompressionQuality( quality );

param.setProgressiveMode( ImageWriteParam.MODE_DEFAULT );

ImageWriter writer = (ImageWriter) ImageIO.getImageWritersByFormatName("JPEG").next();
writer.setOutput( ImageIO.createImageOutputStream(out) );
writer.write(null, new IIOImage(image, null, null), param);


Para quem não sabe o que é um jpeg progressivo, leia uma explicação mais técnica e exata:

http://www.faqs.org/faqs/jpeg-faq/part1/section-11.html

Para leigos, podemos resumir:

"É aquele 'efeitinho'?|?| que faz com que a imagem seja carregada toda, inicialmente 'sem foco' e depois irá ganhando nitidez", essa é uma explicação bem tosca, na verdade não há efeito nenhum, o que ocorre é que o browser recebe uma informação diferente quando encontra um jpeg progressivo para ser carregado, esse jpeg precisa SER GRAVADO de uma forma diferente, não há nada que Javascript ou css possa fazer (talvez com swf... gif animado..), mas ai ja perdemos o foco (jpeg).

Abraços

Nenhum comentário: