Quando estou tentando visualizar pixel art de perto, o chrome começa a desfocar a imagem. Quero fazê-lo de forma que, mesmo quando a imagem é ampliada, ainda consigo ver os pixels com detalhes nítidos, não desfocados.
Quando estou tentando visualizar pixel art de perto, o chrome começa a desfocar a imagem. Quero fazê-lo de forma que, mesmo quando a imagem é ampliada, ainda consigo ver os pixels com detalhes nítidos, não desfocados.
Respostas:
Atualizar
Conforme os comentários:
agora é possível no Firefox: renderização de imagem: optimizeSpeed; - Arnaud
Original
Isso não é possível diretamente no navegador.
A suavização é aplicada por meio de um algoritmo e os navegadores mais modernos fazem o mesmo; no IE, Firefox e Chrome, não há como desativar isso.
http://productforums.google.com/forum/#!topic/chrome/AIihdmfPNvE
Você tem outras opções. Aqui estão os 2 pontos principais do link acima, ambos são complementos do Chrome.
Você pode aplicar o código CSS abaixo no navegador , que será desativado!
img {
image-rendering: optimizeSpeed; /* */
image-rendering: -moz-crisp-edges; /* Firefox */
image-rendering: -o-crisp-edges; /* Opera */
image-rendering: -webkit-optimize-contrast; /* Chrome (and Safari) */
image-rendering: pixelated; /* Chrome as of 2019 */
image-rendering: optimize-contrast; /* CSS3 Proposed */
-ms-interpolation-mode: nearest-neighbor; /* IE8+ */
}
image-rendering: -webkit-optimize-contrast;
trabalhando no chrome
Percebi alguns problemas com o Chrome e o Firefox ao usar a renderização GPU com imagens. Por exemplo:
img {
-webkit-transform-style: preserve-3d;
transform-style: preserve-3d;
}
Se você tiver alguma instrução CSS com o seguinte, tente removê-la e verifique se a qualidade da sua imagem aumenta.
Eu criei este bookmarklet para desativar a suavização. Eu mantenho o link na minha barra de favoritos e toco nele quando quero desativar o antialiasing em uma página, geralmente para pixel art ou jogos clássicos :
javascript:(function pixelate() {
const sheet = document.createElement('style');
sheet.innerHTML = 'img { image-rendering: pixelated; }';
document.head.appendChild(sheet);
for(let i = 0; i < frames.length; ++i) {
frames[i].document.head.appendChild(sheet);
}
})()
O motivo pelo qual um bookmarklet foi atraente é que eu não gosto de dar às extensões a permissão "ler e alterar todos os seus dados nos sites visitados".