Teilen Sie diesen Artikel:

Blog
Aug 08, 20237 min read

Drupal 9 Bild in WebP-Format konvertieren

Vasil Boychev

Gebietsleiter - Benelux

Drupal 9 Bild in WebP-Format konvertieren

Was ist WebP und was sind seine Vorteile?

Lange Zeit galt JPG als Standard für Bilddaten im Internet. Im Jahr 2013 gelang es Google (zusammen mit einer Gruppe anderer Open-Source-Entwickler) jedoch, WebP zu entwickeln, eine neue Bildkodierungstechnik, mit der Bilder unter Beibehaltung der Bildqualität kleiner als JPG komprimiert werden sollten.

WebP ist ein modernes Bildformat für das Web, das eine verlustfreie Komprimierung ermöglicht. Webmaster und Webentwickler können mit WebP kleinere, reichhaltigere Bilder erstellen, die im Web schneller geladen werden.

Im Vergleich zu PNGs sind verlustfreie WebP-Bilder 26 % kleiner. Bei gleichem SSIM-Qualitätsindex sind verlustbehaftete WebP-Bilder 25-34 % kleiner als entsprechende JPEG-Bilder.

Transparenz wird von verlustfreiem WebP auf Kosten von nur 22 Prozent mehr Daten unterstützt. Wenn verlustbehaftete RGB-Komprimierung akzeptabel ist, bietet verlustbehaftetes WebP auch Transparenz, was zu Dateigrößen führt, die in der Regel dreimal kleiner sind als PNG.

Lesen Sie häufig gestellte Fragen zu WebP.

Wie implementiert man das WebP-Format für alle Bilder auf einer Drupal 9-Website?

Es sind 3 Hauptschritte zu beachten:
  1. Konfigurieren Sie die Unterstützung des Webp-Formats auf dem Server.
  2. Installieren und konfigurieren Sie Imagemagick und WebP Drupal Module.
  3. Fügen Sie den Effekt "In WEBP konvertieren" zu den entsprechenden Bildstilen hinzu.

1. Konfigurieren Sie die Unterstützung des WebP-Formats auf dem Server.

Wir müssen sicherstellen, dass wir die WebP-Unterstützung des Servers haben. Für unseren Zweck können wir zwei verschiedene php-Erweiterungen verwenden, imagick und gd. Beide unterstützen die Konvertierung von Bildern in das WebP-Format. Der Unterschied liegt nur in den Konfigurationen der nächsten Schritte. Zuerst werden wir uns mit der gd-Erweiterung beschäftigen und danach mit imagick.

GD-Erweiterung:
Zuerst müssen Sie Ihre php.ini-Datei überprüfen. Sie müssen finden:

erweiterung=php_gd2.dll

oder

xtension=php_gd.dll.

Danach müssen Sie Ihren Server neu starten, damit die Änderungen übernommen werden. Wenn Sie diese Erweiterung nicht in Ihrer php.ini-Datei finden können, müssen Sie sie zu Ihrer Umgebung hinzufügen.

Sie wird folgendermaßen aussehen:

sudo apt-get update 
sudo apt-get install php-gd

GD-Erweiterung: DDEV-Umgebung müssen Sie DDEV Hook konfigurieren. Sie können den Hook nach dem Start einstellen und zusätzliche Einstellungen in .ddev/config.yaml hinzufügen.

Haken:
Post-Start:

- exec: sudo apt-get update 
- exec: sudo apt-get install php-gd

Durch die Verwendung von Hooks können Sie Linux-Befehle in der DDEV-Umgebung ausführen.

Wenn Sie die in diesem Abschnitt beschriebenen Schritte korrekt ausgeführt haben, sehen Sie einen neuen Block in phpinfo().

Sie wird folgendermaßen aussehen:

Dieser Abschnitt zeigt Ihnen, dass die gd-Erweiterung erfolgreich installiert wurde. Sie müssen hier prüfen, ob die WebP-Unterstützung aktiviert ist.

GD

Imagick:
Imagick ist eine weitere Bibliothek, die Sie für Bildmanipulationen verwenden können. Die Installation von Imagick basiert ziemlich genau auf dem, was wir im vorherigen Abschnitt gesehen haben.

sudo apt-get update 
sudo apt-get install php-imagick

Oder das Beispiel DDEV:

Haken:
Post-Start:

- exec: sudo apt-get update 
- exec: sudo apt-get install php-imagick

Sie können überprüfen, ob imagick erfolgreich installiert wurde, indem Sie den folgenden Befehl verwenden

php -m | grep imagick

Nach der letzten Manipulation müssen Sie Ihren Webserver neu starten, höchstwahrscheinlich apache.

Wenn Sie alles richtig gemacht haben, werden Sie etwas sehen wie:

imagick

Anmerkung:

In den oben beschriebenen Abschnitten müssen Sie überprüfen, ob die WEBP-Unterstützung für PHP aktiviert ist. Wenn Sie die WebP-Unterstützung oder das WebP-Format im vorherigen Abschnitt nicht finden können, müssen Sie es manuell mit diesem Befehl installieren:

sudo apt-get update 
sudo apt-get install -y webp

Und noch einmal: Starten Sie Ihren Webserver neu.

2. Installieren und konfigurieren Sie Imagemagick und WebP Drupal Module.

So weit so gut, wir haben bereits eine konfigurierte Umgebung. Ich hoffe, Sie haben den vorherigen Schritt ohne Probleme durchgeführt. Wenn nicht - bitte wiederholen!

Als nächstes werden wir uns zwei Module ansehen, die wir installieren und konfigurieren müssen, um die Bildkonvertierung einzustellen.

Gut, fahren wir mit der Installation der beiden benötigten Module fort. Das erste - Imagemagick.

Komponist erfordern drupal/imagemagick

drush en imagemagick -y

Und die zweite - WebP.

komponist erfordern drupal/webp

drush en webp -y

Nachdem Sie alle Module installiert und aktiviert haben, führen Sie drush cr aus, um den Cache neu zu erstellen.

Das WebP-Modul bietet die WEBP-Konverter-Erweiterung in den Bildstileffekten, die wir etwas weiter unten zeigen werden. Für das WebP-Modul sind keine Konfigurationen erforderlich. Wir werden stattdessen das ImageMagick-Modul konfigurieren.

Das ImageMagick-Modul kann auf zwei Arten konfiguriert werden. Wir werden beide in diesem Abschnitt behandeln. Im vorigen Abschnitt haben Sie eine PHP-Bibliothek für die Bildbearbeitung gd/imagick gewählt, an diesem Punkt müssen Sie das ImageMagick-Modul entsprechend konfigurieren.

Zuerst werden wir uns die Konfigurationsschritte von imagick ansehen:

Navigieren Sie zu: /admin/config/media/image-toolkit

Wenn Sie die Imagick-Bibliothek wählen, müssen Sie die erste Option ImageMagick image toolkit wählen. Außerdem müssen Sie die Bildqualität einstellen.

Mit der Option Bildqualität wird die Bildqualität auf den von Ihnen gewählten Prozentsatz reduziert. Beachten Sie, dass das Bild nicht gut aussieht, wenn Sie die Bildqualität zu stark reduzieren. Sie müssen damit herumspielen.

Sie müssen auch einen Pfad zum imagiMagick bin-Ordner festlegen, der das Modul zur Konvertierung von Bildern verwendet. Sie können die Erweiterung herunterladen, je nach Betriebssystem. Danach extrahieren Sie alles aus diesem Ordner an den gewünschten Ort auf Ihrem Server. Geben Sie den Pfad zum bin-Ordner in das Image-Toolkit-Feld "Pfad zur ausführbaren Datei des Pakets" ein, und das ist alles.

image toolkit page

Im nächsten Schritt müssen wir die Bildformate festlegen, die wir verwenden wollen. Beachten Sie, dass Sie die zu verwendenden Bildformate aktivieren oder deaktivieren können.

image formats page

Nun wollen wir uns ansehen, wie man imagemagick mit der GD2-Erweiterung konfiguriert:

Wenn Sie gd processor für die Bearbeitung von Bildern wählen, müssen Sie nur "GD2 image manipulation toolkit" in den Optionen des Bildtoolkits einstellen.

image toolkit settings

Vergessen Sie nicht, nach der Anwendung der Moduleinstellungen drush cr auszuführen, um den Drupal-Cache neu aufzubauen.

3. Fügen Sie den Effekt "In WEBP konvertieren" zu den entsprechenden Bildstilen hinzu.

Okay, wir haben bereits WebP-Unterstützung auf unserem Server, jetzt müssen wir die Konvertierung von Bildern in das WebP-Format einrichten, indem wir Konverter in allen Bildstilen hinzufügen.

Öffnen Sie : /admin/config/media/image-styles, und erstellen Sie einen neuen Bildstil.
 

image styles

Und geben Sie einen Namen ein, zum Beispiel "Image process".

image style naming

Und klicken Sie auf Neuen Stil erstellen.

In diesem neuen Bildstil müssen wir einen Konverter für unsere Bilder erstellen.

Wählen Sie "Konvertieren" aus der Dropdown-Liste und klicken Sie auf "Hinzufügen".

image style name

Auf der nächsten Seite wählen Sie die Option WebP aus der Dropdown-Liste und klicken auf Effekt hinzufügen. Das bereits installierte WebP-Modul gibt uns hier die WEBP-Erweiterung:

convert an image between extensions

Wenn Sie den neuen Effekt auf vorhandene Bildstile anwenden möchten, gehen Sie genauso vor.

Bonus: Neu erstellter Bildstil in Twig anwenden

An dieser Stelle müssen wir verstehen, dass das WebP-Format nur für Bilder angewendet wird, die einen Bildstil verwenden. In allen anderen Fällen müssen wir den Bildstil manuell im Code anwenden. Zum Beispiel - in twig. Höchstwahrscheinlich verwenden die dort implementierten Bilder keinen Bildstil. Glücklicherweise können wir einen bestimmten Bildstil direkt in Twig anwenden.

Um Bilder zu erfassen, die wir im Stil wie Hintergrund oder in der Twig-Vorlage hinzugefügt haben, müssen wir den Bildstil mit der Twig-Funktion image_style() unter Verwendung des Bildstils 'image_process', den wir zuvor erstellt haben, festlegen. Bitte beachten Sie, dass wir den Namen des Bildstils in der image_style() Funktion angeben müssen.

Um den Maschinennamen Ihres Bildstils zu finden, den wir bereits erstellt haben, müssen Sie den Bildstil im Drupal 9-Administrationspanel öffnen und sich die Url ansehen.

Sie sehen dann etwas wie:

Das letzte Argument in url ist der Name Ihrer Bildstilmaschine, die Sie als Parameter für Bildstil() verwenden können.

style machine name

Wenn wir einen Bildstil in css im Twig-Hintergrund hinzufügen wollen, würde das wie folgt aussehen:

background-image: url({{'public://image_folder/image.jpg' | image_style('image_process')}});

Um den Bilderordner zu erhalten, müssen Sie die Variable public:// verwenden, die den Zielort der öffentlichen Dateien darstellt, normalerweise ist es "sites/default/files".

Oder wenn Sie einen Bildstil zu twig field uri hinzufügen möchten, würde es wie folgt aussehen:

background-image: url('{{ file_url(content.field_image.0['#media'].field_media_image.entity.fileuri | image_style('image_process')) }}');

Anmerkung:

Wenn Sie dies mit einem Twig-Medienfeld verwenden möchten, müssen Sie die Medienfeld-URI abrufen.

Fazit

WebP ist in der Lage, die Datenkomprimierung auf ein neues Niveau zu heben, da es einen Vorhersagemodus in den JPG-Prozess einfügt, wodurch die Überlegenheit gegenüber dem JPG-Verfahren deutlich wird. Und wir haben die Ergebnisse, um es zu beweisen

Vor

before image size

Nach

after image size

Vor

before performance result

Nach
after performance result

ABONNIEREN SIE UNSEREN NEWSLETTER

Teilen Sie diesen Artikel:

ABONNIEREN SIE UNSEREN NEWSLETTER

Verwandte Blog-Artikel

    Warum Startups zögern, mit einer Agentur für maßgeschneiderte Softwareentwicklung zusammenzuarbeiten - und wie wir alle Bedenken ausräumen

    Blog

    Warum Startups zögern, mit einer Agentur für maßgeschneiderte Softwareentwicklung zusammenzuarbeiten - und wie wir alle Bedenken ausräumen

    <p>Start-ups zögern oft, mit Softwareagenturen zusammenzuarbeiten, weil sie Bedenken hinsichtlich Kosten, Kontrolle und Flexibilität haben. Entdecken Sie, wie die maßgeschneiderten Softwarelösungen von Bulcode jede Herausforderung meistern und für Wachstum und Flexibilität sorgen.</p>

    Geschrieben von Svetoslava Angelova
    Nov 05, 20246 min read
    Aufbau eines hochleistungsfähigen agilen Teams: Unser bewährter Ansatz

    Blog

    Aufbau eines hochleistungsfähigen agilen Teams: Unser bewährter Ansatz

    Erfahren Sie, wie wir leistungsstarke agile Teams aufbauen, indem wir klare Rollen definieren, die Zusammenarbeit fördern und flexible Tools einsetzen.

    Geschrieben von Svetoslava Angelova
    Aug 27, 20249 min read
    Drupal 11: Was ist zu erwarten? Umfassender Leitfaden zu neuen Funktionen und Erweiterungen

    Blog

    Drupal 11: Was ist zu erwarten? Umfassender Leitfaden zu neuen Funktionen und Erweiterungen

    Drupal 11 ist da! Entdecken Sie in diesem Artikel die spannenden Funktionen und Verbesserungen. Führen Sie jetzt ein Upgrade durch, um Ihre digitale Strategie mit dem Experten-Support von Bulcode neu zu definieren.

    Geschrieben von Svetoslava Angelova
    Aug 05, 20247 min read
    Einzelne Verzeichniskomponenten in Drupal core: Ein umfassender Überblick

    Blog

    Einzelne Verzeichniskomponenten in Drupal core: Ein umfassender Überblick

    Erfahren Sie, wie Single Directory Components (SDC) in Drupal Core den Entwicklungsprozess rationalisieren, indem komponentenbezogene Dateien in einem einzigen Verzeichnis gekapselt werden. Erfahren Sie mehr über die Vorteile von SDCs und folgen Sie einer Schritt-für-Schritt-Anleitung, um sie in Ihren Drupal-Projekten zu implementieren.

    Geschrieben von Nikolay Tsekov
    Aug 07, 20244 min read
    SCRUM-EVENTS

    Blog

    SCRUM-EVENTS

    Scrum definiert mehrere Ereignisse (manchmal auch Zeremonien genannt), die in jedem Sprint stattfinden: Sprint Planning, Daily Scrum, Sprint Review und Sprint Retrospective.

    Geschrieben von Svetoslava Angelova
    Aug 07, 20233 min read
    Scrum-Artefakte

    Blog

    Scrum-Artefakte

    In der Softwareentwicklung bezieht sich der Begriff "Artefakt" auf Informationen, die Stakeholder und das Scrum-Team verwenden, um ein in der Entwicklung befindliches Produkt zu beschreiben.

    Geschrieben von Svetoslava Angelova
    Aug 07, 20232 min read
    Kopfloses Drupal mit Next.js - einfaches Beispiel für einen Durchgang

    Blog

    Kopfloses Drupal mit Next.js - einfaches Beispiel für einen Durchgang

    Der Trend in letzter Zeit, in der Web-Entwicklung im Allgemeinen, und folglich in der Drupal-Entwicklung ist die Verwendung der Technologie headless. Der Trend in letzter Zeit, in der Web-Entwicklung im Allgemeinen, und folglich in Drupal-Entwicklung ist die Technologie zu verwenden, headless.

    Geschrieben von Mihail Shahov
    Aug 07, 20237 min read
    Engagierte Softwareentwickler (Teams) anstellen

    Blog

    Engagierte Softwareentwickler (Teams) anstellen

    Sind Sie es leid, die Kosten für Ihr internes Entwicklungsteam zu erhöhen? Warum holen Sie sich nicht ein engagiertes Team zu 40 % bis 60 % der Kosten?

    Geschrieben von Mihail Shahov
    Aug 07, 20233 min read
    Die Bedeutung des richtigen Entwicklungspartners im Lebenszyklus Ihrer Softwareentwicklung

    Blog

    Die Bedeutung des richtigen Entwicklungspartners im Lebenszyklus Ihrer Softwareentwicklung

    Den Erfolg freischalten: Die Kunst der Auswahl des perfekten Softwareentwicklungspartners. Erforschen Sie die zentrale Rolle von Partnern in der Softwareentwicklung, decken Sie ROI-Geheimnisse auf und bleiben Sie den Branchentrends einen Schritt voraus in diesem lesenswerten Artikel.

    Geschrieben von Mihail Shahov
    Sep 26, 20239 min read
    Tutorial zum Modul Config Split für Drupal

    Blog

    Tutorial zum Modul Config Split für Drupal

    Sehr oft müssen wir als Entwickler mit verschiedenen Umgebungen arbeiten. Das kann manchmal zu (un)erwarteten Problemen führen. In Drupal 8 verwenden wir das Konfigurationssystem, das ziemlich gut funktioniert, aber es gibt Fälle, in denen die Einstellungen für die lokale und eine andere Umgebung unterschiedlich sein sollten.

    Geschrieben von Ivaylo Tsandev
    Aug 08, 20237 min read
    Enthüllung des Power-Duos: Next.js als Headless-Frontend von Drupal 10

    Blog

    Enthüllung des Power-Duos: Next.js als Headless-Frontend von Drupal 10

    Entdecken Sie die dynamische Synergie zwischen Drupal 10 und Next.js, da diese leistungsstarke Kombination die Landschaft der Webentwicklung neu gestaltet. Next.js, ein Open-Source-Framework auf React-Basis, ist nahtlos als Headless-Frontend in Drupal 10 integriert und bietet eine Fülle von Vorteilen. Von verbesserter Leistung mit Funktionen wie automatischer Codeaufteilung und serverseitigem Rendering bis hin zu flexiblem Design und SEO-freundlichen Funktionen ermöglicht diese Zusammenarbeit Entwicklern die Erstellung leistungsstarker, skalierbarer und visuell ansprechender Webanwendungen. Die effiziente Inhaltsverwaltung von Drupal 10 in Verbindung mit der Anpassungsfähigkeit von Next.js an Trends gewährleistet einen innovativen Entwicklungsansatz und positioniert dieses Tandem an der Spitze der modernen Webentwicklungspraktiken. Umarmen Sie die Zukunft mit der Kombination aus Drupal 10 und Next.js und definieren Sie neu, wie wir dynamische Online-Erlebnisse angehen und gestalten.

    Geschrieben von Todor Kolev
    Feb 09, 20245 min read
    Tutorial zum Modul Config Ignore für Drupal

    Blog

    Tutorial zum Modul Config Ignore für Drupal

    Manchmal wollen wir nicht, dass unsere Konfigurationen in der Codebasis freigegeben werden. Was können wir also in solchen Fällen tun?

    Geschrieben von Ivaylo Tsandev
    Aug 08, 20237 min read

    KONTAKT AUFNEHMEN

    Sie haben ein Projekt, das Sie gerne starten würden?