kulturbanause Blog

Responsive Design, WordPress, Konzeption, HTML, CSS, JS & UX/UI …

image-rendering: pixelated/crisp-edges – Bildinterpolation im Browser steuern

image-rendering-pixelated

Grafiken werden in flexiblen Web-Layouts häufig mit Hilfe des Browsers skaliert. Sofern es sich um Pixelgrafiken handelt, geht Qualität verloren, wenn die Grafik über ihre tatsächliche Größe hinaus skaliert wird. Das Bild wird unscharf. Aus diesem Grund werden Grafiken normalerweise kleiner skaliert. Doch auch diese Vorgehensweise hat Nachteile, denn es werden mehr Daten geladen als notwendig. Responsive Images und Techniken wie Downsampling schaffen hier Abhilfe, doch auch die Art wie der Browser die Bildskalierung berechnet, kann euch dabei helfen ein optisch besseres Ergebnis zu erreichen.

Workshops und Seminare von kulturbanause

Unsere Seminar-Termine für 2018 sind online!

Jetzt Tickets sichern!

image-rendering

Mit der CSS-Eigenschaft image-rendering kann gesteuert werden, wie der Browser das Bild rendert. Sichtbar ist der Effekt aber erst, wenn das Bild skaliert wurde. Die CSS-Eigenschaft image-rendering ist also entfernt vergleichbar mit der Bildinterpolation in Photoshop. Auch hier stehen bei der Transformation von Grafiken verschiedene Interpolationsmethoden zur Verfügung.

Bildinterpolation in Photoshop
Bildinterpolation in Photoshop

image-rendering: auto;

Der Standard-image-rendering-Wert aller Browser ist auto, was der Interpolationsmethode »Bikubisch (Automatisch)« von Photoshop am ehesten entspricht. Der folgende Screenshot zeigt, wie eine Grafik normalerweise im Browser skaliert wird.

Standard-Bildskalierung im Browser. Das rot umrahmte Element ist die Originalgröße der Grafik
Standard-Bildskalierung im Browser. Das rot umrahmte Element ist die Originalgröße der Grafik

image-rendering: pixelated;

Mit folgendem CSS-Befehl kann die Rendering-Methode auf »Pixelwiederholung« gesetzt werden:


.pixelated {
  image-rendering: pixelated;
}

Hierbei werden alle Pixel auf glatte Zahlen gerundet. Das hat dann den Effekt, dass Kanten sehr scharf dargestellt werden.

Bildskalierung im Browser mit Hilfe des pixelated-Wertes von CSS. Das rot umrahmte Element ist die Originalgröße der Grafik
Bildskalierung im Browser mit Hilfe des pixelated-Wertes von CSS. Das rot umrahmte Element ist die Originalgröße der Grafik

image-rendering: crisp-edges;

Beim Wert crisp-edges, wird der Browser angewiesen einen Interpolations-Algorithmus zu verwenden, bei dem Kontraste und Farben erhalten bleiben und Kanten nicht unscharf werden. Das funktioniert sowohl beim Verkleinern als auch beim Vergrößern. In der Praxis fällt es häufig schwer einen Unterschied zwischen pixelated und crisp-edges wahrzunehmen.

Beispiel aller Werte anzeigen

Browser-Support

Der Browser-Support ist zum Veröffentlichungszeitpunkt dieses Beitrags noch recht unübersichtlich. Chrome und Opera unterstützen die Eigenschaft ohne Präfix, allerdings nur den Wert pixelated. Firefox und Safari benötigen einen Präfix, verstehen aber wiederum nur den crisp-edges-Wert …

Den exakten Browser-Support entnehmt ihr bitte der Website Caniuse.

Praxiseinsatz?

Die Interpolationsmethode »Pixelwiederholung« wird in Photoshop u.a. eingesetzt, wenn QR-Codes, Strichgrafiken, technische Zeichnungen, Infografiken oder Illustrationen die einen bewusst pixeligen Look haben (z. B. der 8 Bit-Stil) skaliert werden müssen. Im Browser kann ich mir vergleichbare Einsatzzwecke vorstellen.

Links / Quellen

Jetzt bist du gefragt!

Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freuen wir uns auf deinen Kommentar.

Du kannst diesen Beitrag natürlich auch weiterempfehlen. Wir sind dir für jede Unterstützung dankbar!

Das könnte dich auch interessieren

1 Kommentar

  1. Moe

    Verfasst am 15. Juli 2015 um 13:22 Uhr.

    Vielen dank für den Artikel!
    Mittlerweile sollte man aber sich so langsam mit svgs (mit png fallback 2x) beschäftigen…

Kommentar verfassen

Dieser Blog lebt vom Feedback der Besucher! Also los, mach mit!
Bitte habe Verständnis dafür, dass Kommentare die mit dem Inhalt dieses Beitrags nichts zu tun haben, gelöscht werden.