Heim > Backend-Entwicklung > PHP-Tutorial > Wie man mit PHP eine einfache Funktion zum Zuschneiden von Bildern entwickelt

Wie man mit PHP eine einfache Funktion zum Zuschneiden von Bildern entwickelt

WBOY
Freigeben: 2023-09-24 09:32:01
Original
1131 Leute haben es durchsucht

Wie man mit PHP eine einfache Funktion zum Zuschneiden von Bildern entwickelt

So entwickeln Sie mit PHP eine einfache Funktion zum Zuschneiden von Bildern

Einführung:
Im modernen Internetzeitalter ist die Bildverarbeitung häufig eine sehr wichtige Funktion, um Bilder an verschiedene Plattformen und Größen anzupassen. In diesem Artikel wird erläutert, wie Sie mit PHP eine einfache Funktion zum Zuschneiden von Bildern entwickeln, um Benutzern das Zuschneiden hochgeladener Bilder zu erleichtern.

1. Vorbereitung

  1. Stellen Sie sicher, dass die PHP-Umgebung installiert ist und die GD-Bibliothek unterstützt. Sie können im Terminal php -m | eingeben, um zu überprüfen, ob es installiert ist.
  2. Erstellen Sie eine Datei mit dem Namen „crop.php“, um die Logik des Bildzuschneidens zu verwalten.

2. Logik implementieren

  1. Vom Benutzer hochgeladene Bilder abrufen
    Wir benötigen zunächst ein HTML-Formular, um die vom Benutzer hochgeladenen Bilder abzurufen. In Crop.php können Sie den folgenden Code hinzufügen:

    <form method="POST" enctype="multipart/form-data">
     <input type="file" name="image" />
     <input type="submit" value="上传并裁剪图片" />
    </form>
    Nach dem Login kopieren
  2. Bilder verarbeiten
    Fügen Sie in Crop.php den folgenden Code zum Verarbeiten von Bildern hinzu:

    if ($_SERVER['REQUEST_METHOD'] === 'POST') {
     $file = $_FILES['image'];
     $fileType = $file['type'];
     $ allowedTypes = ['image/jpeg', 'image/png', 'image/gif'];
    
     if (!in_array($fileType, $allowedTypes)) {
         die('只允许上传 JPG、PNG 或 GIF 格式的图片文件');
     }
    
     $uploadDir = 'uploads/';
     $uploadFile = $uploadDir . basename($file['name']);
    
     if (move_uploaded_file($file['tmp_name'], $uploadFile)) {
         // 获取上传后的图片宽度和高度
         list($width, $height) = getimagesize($uploadFile);
         // 输出裁剪工具的HTML代码
         echo "<img  src="$uploadFile" id="image"   style="max-width:90%" / alt="Wie man mit PHP eine einfache Funktion zum Zuschneiden von Bildern entwickelt" >";
         echo "<script src="https://cdn.jsdelivr.net/npm/cropperjs"></script>";
         echo '<script>
             var image = document.getElementById("image");
             var cropper = new Cropper(image, {
                 aspectRatio: 1, // 裁剪框的宽高比例
                 viewMode: 1 // 显示裁剪範圍的模式,1代表裁剪範圍不能超过预览图的大小
             });
         </script>';
         echo '<button onclick="crop()">裁剪并保存</button>';
    
         // 定义裁剪成功后保存的文件路径
         $croppedFile = $uploadDir . 'cropped_' . basename($file['name']);
    
         echo '<script>
             function crop() {
                 var canvas = cropper.getCroppedCanvas(); // 获取裁剪后的图像
                 canvas.toBlob(function(blob) { // 将裁剪后的图像转为 Blob 对象
                     var formData = new FormData();
                     formData.append("file", blob, "cropped_' . basename($file['name']) . '"); // 将裁剪后的图像添加到 FormData 对象中
                     // 发送请求保存裁剪后的图像
                     var xhr = new XMLHttpRequest();
                     xhr.open("POST", "crop.php", true);
                     xhr.onload = function() {
                         if (xhr.status === 200) {
                             alert("图片裁剪并保存成功!");
                         } else {
                             alert("图片裁剪失败!");
                         }
                     };
                     xhr.send(formData);
                 }, "' . $fileType . '");
             }
         </script>';
     } else {
         die('文件上传失败');
     }
    } 
    Nach dem Login kopieren
  3. Speichern Sie das zugeschnittene Bild.
    Fügen Sie weiter in Crop.php hinzu Der folgende Code wird zum Speichern des zugeschnittenen Bildes verwendet:

    if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_FILES['file'])) {
     $file = $_FILES['file'];
     $uploadDir = 'uploads/';
     $uploadFile = $uploadDir . basename($file['name']);
     
     if (move_uploaded_file($file['tmp_name'], $uploadFile)) {
         // 保存裁剪后的图片
         $croppedFile = $uploadDir . 'cropped_' . basename($file['name']);
         if (rename($uploadFile, $croppedFile)) {
             // 输出裁剪后的图片
             echo "<img  src="$croppedFile"   style="max-width:90%" / alt="Wie man mit PHP eine einfache Funktion zum Zuschneiden von Bildern entwickelt" >";
         }
     } else {
         die('图片保存失败');
     }
    }
    Nach dem Login kopieren

    3. Üben Sie das Ausführen

  4. Richten Sie eine PHP-Umgebung auf dem Server ein und stellen Sie sicher, dass die GD-Bibliothek installiert ist.
  5. Laden Sie die Datei „crop.php“ auf den Server hoch und stellen Sie sicher, dass der Upload-Ordner über Lese- und Schreibberechtigungen verfügt.
  6. Greifen Sie in Ihrem Browser auf die Datei „crop.php“ zu, um Bilder hochzuladen und zuzuschneiden.

Fazit:
Durch die oben genannten Schritte können wir PHP verwenden, um eine einfache Funktion zum Zuschneiden von Bildern zu entwickeln. Nachdem der Benutzer das Bild hochgeladen hat, können wir die Cropper.js-Bibliothek verwenden, um die Bildzuschneidefunktion zu implementieren und das zugeschnittene Bild zu speichern. Diese einfache Funktion zum Zuschneiden von Bildern kann problemlos in Websites oder Webanwendungen eingebettet werden, um die Benutzererfahrung zu verbessern und verschiedene Bildverarbeitungsanforderungen zu erfüllen.

Das obige ist der detaillierte Inhalt vonWie man mit PHP eine einfache Funktion zum Zuschneiden von Bildern entwickelt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage