Масштабирование изображения с помощью CSS: есть ли альтернатива тридцати -МОЗ-хрустящие края?
У меня есть изображение размером 100x100 пикселей. Я хочу показать его в два раза больше, так что 200x200, и я хочу сделать это с помощью CSS и (явно) не на сервере.
Вот уже несколько лет изображения сглаживаются всеми браузерами вместо того, чтобы масштабироваться по пикселям.
Mozilla позволяет задать алгоритм: рендеринг изображений: - moz-crisp-Edge; Так же есть: -МС-интерполяция-режим: ближайшего соседа;
Какая-нибудь известная альтернатива webkit?
3 ответа:
WebKit теперь поддерживает директиву CSS:
image-rendering:-webkit-optimize-contrast;
Вы можете увидеть его работу в действии с помощью Chrome и последнего изображения на этой странице:
http://phrogz.net/tmp/canvas_image_zoom.htmlНа этой странице используются следующие правила:
.pixelated { image-rendering:optimizeSpeed; /* Legal fallback */ image-rendering:-moz-crisp-edges; /* Firefox */ image-rendering:-o-crisp-edges; /* Opera */ image-rendering:-webkit-optimize-contrast; /* Safari */ image-rendering:optimize-contrast; /* CSS3 Proposed */ image-rendering:crisp-edges; /* CSS4 Proposed */ image-rendering:pixelated; /* CSS4 Proposed */ -ms-interpolation-mode:nearest-neighbor; /* IE8+ */ }
В дополнение к @Phrogz очень полезный ответ и после прочтения этого: https://developer.mozilla.org/en-US/docs/CSS/image-rendering
Похоже, что лучший CSS будет следующим:
image-rendering:optimizeSpeed; /* Legal fallback */ image-rendering:-moz-crisp-edges; /* Firefox */ image-rendering:-o-crisp-edges; /* Opera */ image-rendering:-webkit-optimize-contrast; /* Chrome (and eventually Safari) */ image-rendering:crisp-edges; /* CSS3 Proposed */ -ms-interpolation-mode:bicubic; /* IE8+ */