Host Europe Blog

Alternative Bildangaben mit Data-URIs

Darstellung eines Mosaik

Alternative Bildangaben mit Data URIs

„Ein Bild sagt mehr als tausend Worte!“

An diesem Ausspruch ist oft etwas Wahres dran.
Vor allem, wenn inhaltlich nicht nur Fakten, sondern auch Emotionen transportiert werden sollen.

Anstatt einfach zu behaupten, dass der Urlaub wirklich sehr schön gewesen ist, zeigt man schließlich gerne Urlaubsfotos, um die traumhafte Landschaft rund um den weißen Sandstrand, die romantische Atmosphäre des Dinners bei Sonnenuntergang oder das erfrischende Flair des kristallklaren Wassers am Pool besonders eindrucksvoll zu vermitteln.

Der inflationäre Gebrauch von fotografischen Bilddaten im Web hat mit der Einführung der zu erschwinglichen Preisen erhältlichen und heimanwendungstauglichen Digitalkameras gegen Anfang des Jahrhunderts einen spürbaren Aufschwung und letztlich über die Smartphones sogar einen regelrechten Boom erlebt.

Ein aktueller Trend sind sogenannte „Selfies“ – Bilder von sich selbst in teilweise narzisstisch komponierten Posen vor einem selbstgewählten Hintergrund, wobei dieser oft das entscheidende Motiv enthält, um eine Verbindung der fotografierenden Person zu diesem Hintergrund herzustellen. Hierbei reicht die Spanne vom „Gruppenselfie“ über Selbstdarstellungen an besonderen Orten bis hin zu Kompositionen mit Berühmtheiten.

Soziale Netzwerke werden derzeit geradezu überflutet mit dieser Art des Selbst-Portraitierens. Aber auch die üblichen Bildergalerien sowie inhaltsbezogene Illustrationen werden mit steigender Beliebtheit verwendet, um Blogartikel oder andere Textpassagen aufzulockern und authentisch wirken zu lassen.

Jedes Bild ein Request

Was im Zuge der aktuell gewohnten DSL-Bandbreiten oft nicht mehr so deutlich im Fokus der Autoren oder Webseitenbetreiber steht, ist die Tatsache, dass Benutzer aus Gebieten mit eher ungünstigem DSL- bzw. LTE-Ausbau weder am heimischen PC, noch mobil in den Genuss kommen, ein reibungsloses Surfvergnügen zu erleben.

Jedes in den Web-Content mit einem Bildpfad eingebundene Bild bewirkt immerhin eine für die korrekte Darstellung notwendige Ressourcenanfrage bei dem entsprechenden Webserver, der die Inhalte bereitstellt. Die Summe der Anfragen kann entscheidend zur Ladezeit beitragen.
Während der Request für die Webseite an sich vom Webserver mit der Ausgabe des HTML-Codes beantwortet wird, müssen alle weiteren Ressourcen ebenfalls einzeln beantwortet werden.

Dabei spielt es keine Rolle, ob ein Bild beispielsweise als img-Element im Vordergrund oder per CSS-Angabe als Hintergrundbild eines weiteren Elements, beispielsweise einer Link-Schaltfläche, implementiert ist. Es sei denn, man verwendet für die Einbindung von Grafiken sogenannte „Data-URIs“.

Was sind Data-URIs?

Hierbei handelt es sich um ein Schema zur Einbettung von Daten in den Seitenquelltext. Dieses Verfahren bringt eine Vielzahl von Vorteilen mit sich. Es wirkt sich in besonderem Maße positiv auf die Performanz hinsichtlich der Ladezeiten aus.

Die Base64-Kodierung

In diesem Zusammenhang wird eine Kodierung nach dem Base64-Verfahren angewendet, die dafür Sorge trägt, dass 8-Bit-Binärdaten, wie z.B. ausführbare Programme, gepackte Daten-Archive oder Bilder, in eine Codepage-unabhängige ASCII-Zeichenfolge umgewandelt wird.

Diese Zeichenfolge ist für den menschlichen Betrachter nicht mehr sinnvoll nutzbar, um den originären Bildpfad einer Grafikdatei aufzuschlüsseln, die Kodierung wird jedoch beispielsweise für den Versand von E-Mails & inklusive aller Daten-Anhänge – als technische Notwendigkeit vorausgesetzt.




Mit Hilfe der Base64-Kodierung wird beispielsweise diese Logo-Grafik in den nachfolgenden Data URI (Uniform Resource Identifier) umgewandelt:




Die wichtigsten Vorteile der Einbettung

Einige Nachteile von Inline-Grafiken

Kodierungswerkzeuge

Eine Möglichkeit, Daten mit der Base64-Methode zu kodieren, besteht in der Verwendung frei verfügbarer Tools im Internet, beispielsweise dem

Alternativ kann auch die serverseitige Skriptsprache PHP dafür verwendet werden, Ressourcen über das Base64-Verfahren zu kodieren und in den übrigen Content zu integrieren.




Eine einfache, informative Herleitung zum dargestellten Codebeispiel wird im Blog von David Walsh unter dem Titel „Image Data-URIs with PHP“ verfasst.

Fazit

In Kombination mit der Komprimierung von Webseiten auf Basis von „gzip/deflate“ liefert die Einbettung von Bildinhalten ein Werkzeug, mit dem die Ladezeiten von Web-Projekten effektiv verkürzt werden können. Weitere Möglichkeiten finden Sie zudem im Artikel „Ladehemmung oder Turbolader – Pagespeed als SEO-Faktor“.

Die mobile Version verlassen