Arbeiten mit Bildern in PHP: Die Bibliotheken GD und Imagick

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Arbeiten mit Bildern in PHP: Überblick über die Bibliotheken GD und Imagick



Die Bildverarbeitung ist eine häufige Aufgabe in der Webentwicklung. In PHP gibt es zwei Hauptbibliotheken für die Arbeit mit Grafiken: GD (integriert) und Imagick (Wrapper für ImageMagick). In diesem Artikel betrachten wir ihre Funktionen, Installation und praktische Beispiele.



Die GD-Bibliothek

GD ist eine Standard-PHP-Erweiterung, die auf den meisten Hosting-Plattformen verfügbar ist. Sie ermöglicht das Erstellen, Ändern und Speichern von Bildern in den Formaten JPEG, PNG, GIF, WEBP.



Installation

Unter Ubuntu/Debian:

sudo apt install php-gdsudo systemctl restart apache2


Unter Windows: Kommentieren Sie die Zeile extension=gd in der php.ini aus.



Grundlegende GD-Funktionen

  • imagecreatefromjpeg(), imagecreatefrompng() — Bild laden
  • imagesx(), imagesy() — Breite und Höhe ermitteln
  • imagecopyresampled() — Skalierung mit Resampling
  • imagefilter() — Filter anwenden (Weichzeichner, Negativ)
  • imagettftext() — Text mit TrueType-Schriftart
  • imagejpeg(), imagepng() — Ergebnis speichern


Beispiel 1: Bildgröße ändern

<?php$src = 'photo.jpg';$dest = 'thumb.jpg';$newWidth = 300;

// Originalbild laden$img = imagecreatefromjpeg($src);$width = imagesx($img);$height = imagesy($img);

// Neue Höhe proportional berechnen$newHeight = intval($height * $newWidth / $width);

// Neues Bild erstellen$thumb = imagecreatetruecolor($newWidth, $newHeight);imagecopyresampled($thumb, $img, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);

// Speichernimagejpeg($thumb, $dest, 85);imagedestroy($img);imagedestroy($thumb);echo "Fertig: $dest";?>


Beispiel 2: Wasserzeichen hinzufügen

<?php$mainImg = imagecreatefromjpeg('background.jpg');$watermark = imagecreatefrompng('logo.png');

// Abmessungen ermitteln$mW = imagesx($mainImg);$mH = imagesy($mainImg);$wW = imagesx($watermark);$wH = imagesy($watermark);

// Position — rechte untere Ecke mit 10px Abstand$dstX = $mW - $wW - 10;$dstY = $mH - $wH - 10;

// Wasserzeichen mit Transparenz kopierenimagecopy($mainImg, $watermark, $dstX, $dstY, 0, 0, $wW, $wH);

// Speichernimagepng($mainImg, 'result.png');imagedestroy($mainImg);imagedestroy($watermark);?>


Die Imagick-Bibliothek

Imagick ist ein objektorientierter Wrapper für das leistungsstarke Tool ImageMagick. Es unterstützt über 200 Formate, komplexe Transformationen, die Arbeit mit PDF, Animationen und Farbprofile.



Installation

sudo apt install imagemagick php-imagicksudo systemctl restart apache2


Installation überprüfen:

<?php phpinfo(); ?>

Suchen Sie den Abschnitt imagick.



Grundlegende Klassen und Methoden

  • Imagick — Hauptklasse für die Bildbearbeitung
  • readImage() — Datei laden
  • resizeImage() — Größe ändern
  • cropImage() — Zuschneiden
  • compositeImage() — Bilder überlagern
  • blurImage() — Weichzeichnen
  • setImageFormat() — Format konvertieren


Beispiel 3: Skalieren und Zuschneiden (Crop)

<?php$image = new Imagick('photo.jpg');

// Auf 800x600 skalieren, Proportionen beibehalten$image->resizeImage(800, 600, Imagick::FILTER_LANCZOS, 1, true);

// Mittleren Bereich 400x400 zuschneiden$width = $image->getImageWidth();$height = $image->getImageHeight();$x = ($width - 400) / 2;$y

Empfehlungen