Aktueller Standort: Startseite> Neueste Artikel> PHP-Scripting zum Batch-Flipping von Bilddateien

PHP-Scripting zum Batch-Flipping von Bilddateien

M66 2025-05-31

Bei der Verarbeitung von Bildern, insbesondere in Batch -Bildverarbeitungsszenarien, müssen häufig (horizontale oder vertikale) Bilder umdrehen. Obwohl PHP eine serverseitige Sprache ist, kann diese Funktion einfach über die integrierte GD-Image-Verarbeitungsbibliothek implementiert werden. In diesem Artikel werden Sie vermittelt, wie Sie ein PHP -Skript schreiben, das alle Bilddateien in ein bestimmtes Verzeichnis stellt, und das umgedrehte Bild in einem anderen Verzeichnis speichert.

1. Vorbereitung

Stellen Sie sicher, dass Ihre Serverumgebung die GD -Bibliothek aktiviert hat. Sie können es auf folgende Weise überprüfen:

 <?php
phpinfo();
?>

Suchen Sie nach dem Zugriff auf dieses Skript im Browser nach GD -Unterstützung . Wenn es aktiviert ist, können Sie Bildverarbeitungsvorgänge durchführen.

2. Grundlegende Logik

Wir müssen die folgenden Schritte ausführen:

  1. Gibt ein Quellverzeichnis an, das Bilder enthält;

  2. Überqueren Sie alle Bilddateien im Verzeichnis;

  3. Laden Sie jedes Bild mit der GD -Bibliothek;

  4. Das Bild umdrehen (horizontal oder vertikal);

  5. Speichern Sie das umgedrehte Bild im Zielverzeichnis.

3. Beispielcode

Hier ist ein vollständiges Beispielskript:

 <?php

$sourceDir = __DIR__ . '/images/originals';
$targetDir = __DIR__ . '/images/flipped';

// Erstellen Sie ein Zielverzeichnis(Wenn es nicht existiert)
if (!file_exists($targetDir)) {
    mkdir($targetDir, 0755, true);
}

// Unterstützte Bildtypen
$allowedExtensions = ['jpg', 'jpeg', 'png', 'gif'];

// Scannen Sie die Dateien im Quellverzeichnis
$files = scandir($sourceDir);

foreach ($files as $file) {
    $filePath = $sourceDir . '/' . $file;

    // über etwas springen . Und ..
    if (in_array($file, ['.', '..'])) {
        continue;
    }

    // Dateierweiterung abrufen
    $extension = strtolower(pathinfo($file, PATHINFO_EXTENSION));

    // Filter Nicht-Image-Dateien
    if (!in_array($extension, $allowedExtensions)) {
        continue;
    }

    // Laden des Bildes
    switch ($extension) {
        case 'jpg':
        case 'jpeg':
            $image = imagecreatefromjpeg($filePath);
            break;
        case 'png':
            $image = imagecreatefrompng($filePath);
            break;
        case 'gif':
            $image = imagecreatefromgif($filePath);
            break;
        default:
            continue 2;
    }

    // Bildgröße erhalten
    $width = imagesx($image);
    $height = imagesy($image);

    // Erstellen Sie eine leere Leinwand
    $flipped = imagecreatetruecolor($width, $height);

    // Das Bild horizontal umdrehen
    for ($x = 0; $x < $width; $x++) {
        imagecopy($flipped, $image, $width - $x - 1, 0, $x, 0, 1, $height);
    }

    // Speichern Sie neue Bilder
    $targetPath = $targetDir . '/' . $file;
    switch ($extension) {
        case 'jpg':
        case 'jpeg':
            imagejpeg($flipped, $targetPath);
            break;
        case 'png':
            imagepng($flipped, $targetPath);
            break;
        case 'gif':
            imagegif($flipped, $targetPath);
            break;
    }

    // Reinigen Sie den Speicher
    imagedestroy($image);
    imagedestroy($flipped);

    echo "Verarbeitete Bilder:$file\n";
}

echo "Batch Flip ist abgeschlossen。Besuchen Sie das umgedrehte Bild, um zu gehen:http://m66.net/images/flipped/";

?>

4.. Dinge zu beachten

  • Stellen Sie sicher, dass die Verzeichnisberechtigungen korrekt festgelegt werden und dass der PHP -Prozess die Erlaubnis hat, auf das Zielverzeichnis zuzugreifen und in das Ziel zu schreiben.

  • Wenn Sie vertikal umdrehen möchten, ändern Sie einfach die Flip -Logik und passen Sie die Koordinaten in ImageCopy () entsprechend an.

  • Für transparente PNG- oder GIF -Bilder kann eine zusätzliche transparente Verarbeitungslogik erforderlich sein, da sonst ein schwarzer Hintergrund angezeigt wird.

V. Schlussfolgerung

Durch die in diesem Artikel bereitgestellten PHP -Skripte können Sie schnell Stapelbildflip -Operationen implementieren. Unabhängig davon, ob es sich um eine Batch -Sortierung von Bildern, die automatisierte Verarbeitung oder die Entwicklung von Online -Bildtools handelt, können solche kleinen Funktionen die Effizienz erheblich verbessern. Wenn Sie vorhaben, dieses Skript in die Website zu integrieren, vergessen Sie nicht, eine einfache Benutzeroberfläche oder eine Datei -Upload -Logik hinzuzufügen, um die Funktionen vollständiger zu gestalten!