Heim >Backend-Entwicklung >PHP-Tutorial >Manipulation von Bildern in PHP mit GD

Manipulation von Bildern in PHP mit GD

Jennifer Aniston
Jennifer AnistonOriginal
2025-03-04 09:20:11604Durchsuche

Dieses Tutorial untersucht die GD -Bibliothek von PHP (Graphic Draw) für eine effiziente Bildmanipulation. Das Verwalten zahlreicher Website -Bilder kann eine Herausforderung sein, aber GD automatisiert Aufgaben wie Größenänderung, Anbaus und Filterung.

Diese Anleitung deckt:

  • Bilderstellung mit PHP GD: Erstellen neuer Bilder, Laden vorhandener Dateien und Erzeugen von Bildern aus Zeichenfolgen.
  • Bildtransformationen: rotierend, skalieren, wachende und umdrehen Bilder.
  • Bildfilterung: Anwenden von Effekten wie Graustufen und Kontrastanpassungen.
  • Essentielle Bildfunktionen: Bildabmessungen erhalten, modifizierte Bilder speichern und Pixelfarben manipulieren.
  • Batch -Bildverarbeitung: Größe und Anwendung von Filtern auf alle Bilder in einem Verzeichnis.

Was ist gd?

Die GD -Bibliothek von

PHP befähigt Sie, Bilder direkt in Ihren PHP -Skripten zu manipulieren und zu erstellen. Es behandelt die Bedürfnisse der gemeinsamen Bildbearbeitung.

setup

unter Windows aktivieren Sie die Erweiterung php_gd2.dll in Ihrer php.ini -Datei (häufig in xamppphpext). Überprüfen Sie die Installation von GD mit imagecreatefrompng(). Die Funktion imagecolorsforindex($image, $color) ist nützlich für eine präzise Farbmanipulation. Für flexiblere Farbanpassungen sollten Sie jedoch mit individuellen Farbkomponenten (rot, grün, blau) arbeiten, um Toleranz zu ermöglichen.

Manipulating Images in PHP Using GD

Batch -Größengrößen -Bilder

Dieses Beispiel ändert alle JPEG -Bilder in einem Verzeichnis ("Nature/") auf eine Breite von 640 Pixel und passt die Höhe automatisch proportional an. Die angegriffenen Bilder werden in einem neuen Subdadumgeburt "Vene angegriffen" gespeichert.

$directory = 'Nature/';
$images = glob($directory."*.jpg");

foreach($images as $image) {
    $im_php = imagecreatefromjpeg($image);
    $im_php = imagescale($im_php, 640);
    $new_height = imagesy($im_php);
    $new_name = str_replace('-1920x1080', '-640x'.$new_height, basename($image));
    imagejpeg($im_php, $directory.'Resized/'.$new_name);
}

Dieser Code verwendet glob(), um JPEGs zu lokalisieren, imagecreatefromjpeg() zu laden, imagescale() zum Größengrößen und imagejpeg(), um die Ergebnisse zu speichern. Dateiname -Anpassungen stellen Klarheit sicher.

Stapel anwenden Filter

Dieses Beispiel wendet Graustufen- und Kontrastfilter (-25 für einen erhöhten Kontrast) auf alle JPEGs in "Nature/" an, wodurch die gefilterten Bilder in einem "Graustufen" -Subdadumgeburt gespeichert werden.

$directory = 'Nature/';
$images = glob($directory."*.jpg");

foreach($images as $image) {
    $im_php = imagecreatefromjpeg($image);
    imagefilter($im_php, IMG_FILTER_GRAYSCALE);
    imagefilter($im_php, IMG_FILTER_CONTRAST, -25);
    $new_name = basename($image);
    imagejpeg($im_php, $directory.'Grayscale/'.$new_name);
}

imagefilter() verändert die Bildressource direkt. Beachten Sie, dass Kontrastwerte von -100 bis 100 reichen (negative Werte erhöhen den Kontrast).

Schlussfolgerung

Die GD -Bibliothek von

PHP bietet leistungsstarke Bildmanipulationsfunktionen, um die Website -Image -Management zu optimieren und beträchtliche Zeit zu speichern. Die zur Verfügung gestellten Beispiele dienen als Grundlage für komplexere Bildverarbeitungsskripte. Funktionen wie imagesx() Ermöglichen Sie eine bedingte Bildmanipulation basierend auf Dimensionen.

Das obige ist der detaillierte Inhalt vonManipulation von Bildern in PHP mit GD. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn