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 apache2Unter Windows: Kommentieren Sie die Zeile extension=gd in der php.ini aus.
Grundlegende GD-Funktionen
imagecreatefromjpeg(),imagecreatefrompng()— Bild ladenimagesx(),imagesy()— Breite und Höhe ermittelnimagecopyresampled()— Skalierung mit Resamplingimagefilter()— Filter anwenden (Weichzeichner, Negativ)imagettftext()— Text mit TrueType-Schriftartimagejpeg(),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 apache2Installation überprüfen:
<?php phpinfo(); ?>Suchen Sie den Abschnitt imagick.
Grundlegende Klassen und Methoden
Imagick— Hauptklasse für die BildbearbeitungreadImage()— Datei ladenresizeImage()— Größe änderncropImage()— ZuschneidencompositeImage()— Bilder überlagernblurImage()— WeichzeichnensetImageFormat()— 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 Auch in der Bibliothek
HTTP-Client für Go (Golang): Top-Bibliotheken für die Arbeit mit HTTP
Überwachung von TypeScript-Anwendungen mit Appmetrics
Arbeiten mit Bildern in PHP: Überblick über Bibliotheken und Werkzeuge
Dependency Injection Container für C# (.NET) — vollständige Anleitung
Testen in Swift (iOS/macOS): Frameworks und Werkzeuge