Assine a Lista Dicas-L
Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.
Incompatibilidade de JPEG no IE 7 e 8
Colaboração: Rogerio Acquadro
Data de Publicação: 19 de maio de 2011
Tivemos recentemente um problema incomum de quebra de layout entre navegadores. Desta vez, nada estava associado a má interpretação de instruções CSS ou HTML, mas a visualização de imagens.
O site em questão era visualizado corretamente pelos navegadores Firefox e Chrome mas as versões 7 e 8 do Internet Explorer não conseguiam exibir todas as imagens (exibindo em seu lugar o tão temido box com a cruz vermelha). Já o Internet Explorer 9 não apresentava nenhuma dificuldade de leitura.
Como não se tratava de quebra de layout, o problema tornava-se ainda mais curioso. Após inúmeras pesquisas pela Internet, descobrimos que essas versões do navegador não conseguem interpretar arquivos JPEG gerados com o padrão de cor CMYK, apenas RGB.
Uma vez identificado o problema a solução era bem simples. Converter todos os arquivos de CMYK para RGB. Graças à biblioteca ImageMagick do Linux, é possível escrever um loop capaz de converter um lote imenso de imagens de um formato para o outro:
for i in *.jpg; do convert "$i" -colorspace RGB -verbose "$i"; done
O comando acima fará a conversão para RGB de todos os arquivos .jpg que estiverem na pasta corrente. Você pode incrementar o comando acima para trabalhar em conjunto com o comando find, de modo a fazer a conversão recursivamente em todos os diretórios abaixo do corrente.
Em alguns casos, é necessário executar o comando novamente para buscar arquivos com extensão .jpeg.
Para saber mais sobre os padrões de cores, leia
Rogerio Acquadro trabalha com software livre desde 1996 e é sócio da (PC)² Consultoria (http://www.pc2consultoria.com)
Referências Adicionais
Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.
Avalie esta dica
Opinião dos Leitores
27 Mai 2011, 15:46
Eu considero um erro essa falta de atenção, pois toda imagem de monitor deve ser em RGB.
23 Mai 2011, 15:03
Parabéns também pelo português. Diferentemente do que costumamos ver por aí, seu texto está impecável.
Abraço!
21 Mai 2011, 18:53
20 Mai 2011, 13:13
Parabéns!
19 Mai 2011, 21:28
<code>
DIR="caminho_do_diretorio";
for i in $(find $DIR -regextype posix-egrep -iregex '.*\.(jpg|jpeg)'); do
convert "$i" -colorspace RGB -verbose "$i";
done
</code>
Um abraço, ótima dica!
:-)





