Kiedy próbuję zobaczyć obraz w pikselach z bliska, chrom zaczyna rozmywać obraz. Chcę to zrobić, aby nawet po powiększeniu obrazu nadal widziałem piksele z wyraźnymi szczegółami, a nie rozmytymi.
Kiedy próbuję zobaczyć obraz w pikselach z bliska, chrom zaczyna rozmywać obraz. Chcę to zrobić, aby nawet po powiększeniu obrazu nadal widziałem piksele z wyraźnymi szczegółami, a nie rozmytymi.
Odpowiedzi:
Aktualizacja
Zgodnie z komentarzami:
teraz jest to możliwe w przeglądarce Firefox: rendering obrazu: optimizeSpeed; - Arnaud
Oryginalny
Nie jest to możliwe bezpośrednio z przeglądarki.
Wygładzanie odbywa się za pomocą algorytmu, a większość współczesnych przeglądarek działa podobnie, aw IE, Firefox i Chrome nie ma sposobu, aby to wyłączyć.
http://productforums.google.com/forum/#!topic/chrome/AIihdmfPNvE
Masz inne opcje, oto 2 główne punkty z powyższego linku, oba to dodatki do Chrome.
Możesz zastosować poniższy kod CSS w przeglądarce , który go wyłączy!
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;
praca w chrome
Zauważyłem pewne problemy z Chrome i Firefox podczas korzystania z renderowania GPU z obrazami. Na przykład:
img {
-webkit-transform-style: preserve-3d;
transform-style: preserve-3d;
}
Jeśli masz jakieś instrukcje CSS z następującymi, spróbuj je usunąć i sprawdź, czy jakość obrazu wzrośnie.
Zrobiłem ten bookmarklet, aby wyłączyć wygładzanie. Trzymam link na pasku zakładek i stukam go, gdy chcę wyłączyć antyaliasing na stronie, zwykle w przypadku grafiki pikselowej lub klasycznych gier :
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);
}
})()
Powodem, dla którego bookmarklet był atrakcyjny, jest to, że nie lubię nadawać rozszerzeniom uprawnienia „czytaj i zmieniaj wszystkie swoje dane w odwiedzanych witrynach”.