Ajustar o anti-aliasing de escala de imagem do Chrome para corresponder ao Internet Explorer 8?

5

Fiquei bastante surpreso ao ver que o anti-aliasing de escala de imagem do Internet Explorer 8 parece ser significativamente melhor que o fornecido pelo Chrome e pelo Firefox. A captura de tela abaixo é da página do google.com de 17 de março para o Chrome e o Explorer, lado a lado. Tenha em atenção que a versão do Chrome tem escadas óbvias à esquerda da imagem e efeitos de rasterização no topo:

Então, minha pergunta é:

Is it possible to tweak the image scaling anti-aliasing of Chrome (and/or Firefox) to match Internet Explorer?

Não houve diferença entre as versões de 64 bits e 32 bits do Explorer. E não houve diferença entre o Chrome e o Firefox. (Usando as versões mais recentes de todos, em uma máquina Windows 7 de 64 bits.)

Uma pergunta secundária (e meu interesse real) é What benefits, if any, does Nvidia Optimus provide? Mas meus testes ainda não estão avançados o suficiente para colocar essa questão. Mas os primeiros resultados parecem negativos. ( Editar : foi gentilmente sugerido que esta questão paralela era não relacionada , e deveria ser excluída. Mas eu acho que isso fornece a motivação dessa pergunta tão fofa).

    
por Joseph Quinsey 18.03.2012 / 02:12

1 resposta

6

Analisando o arquivo de origem para redimensionar e filtrar a imagem do Chromium, aparece o filtro usado para aumentar as imagens é um raio 3 filtro Lanczos . (veja a função ResizeMethodToAlgorithmMethod , eu acho que a escolha padrão é usada, pois os comentários parecem se adequar melhor ao downscaling). O kernel de convolução é definido na função EvalLanczos no topo do arquivo, e não tem provisões para qualquer modificação após o tempo de compilação.

A menos que eu leia o código muito erroneamente (veja o construtor para ResizeFilter ), o filtro (e a escala) é aplicado unidimensionalmente em uma direção no momento. As capturas de tela parecem indicar que a filtragem do IE é bidimensional e ponderada pelo raio, e não pela distância máxima hor / vert. (Isso pode ser uma pista falsa, no entanto.)

Eu acho que você poderia de alguma forma determinar que tipo de filtragem o IE faz e reimplementá-lo, seja apenas substituindo o filtro Lanczos, ou (mais fantasticamente) atualizar o resto da fonte para chamar seu filtro. Este último seria necessário se você não puder contornar o problema de uma dimensão no momento. Eu não recomendaria isso, a menos que você tenha sentimentos particularmente strongs sobre como seu navegador aprimora as imagens.

PS: a escala no Opera também parece corresponder à sua captura de tela do Chrome.

    
por 18.03.2012 / 08:01