Rumah >pembangunan bahagian belakang >tutorial php >Cara menggunakan PHP untuk membangunkan fungsi pemangkasan imej yang mudah

Cara menggunakan PHP untuk membangunkan fungsi pemangkasan imej yang mudah

WBOY
WBOYasal
2023-09-24 09:12:231110semak imbas

Cara menggunakan PHP untuk membangunkan fungsi pemangkasan imej yang mudah

Cara menggunakan PHP untuk membangunkan fungsi pemangkasan imej yang mudah

Pengenalan:
Dalam era Internet moden, pemprosesan imej adalah fungsi yang sangat penting Pengguna sering perlu memuat naik atau menangkap imej untuk menyesuaikan diri dengan pelbagai platform dan saiz. Artikel ini akan memperkenalkan cara menggunakan PHP untuk membangunkan fungsi pemangkasan imej yang mudah untuk memudahkan pengguna memotong imej yang dimuat naik.

1. Persediaan

  1. Pastikan persekitaran PHP telah dipasang dan menyokong perpustakaan GD. Anda boleh memasukkan php -m |. grep gd dalam terminal untuk menyemak sama ada ia dipasang.
  2. Buat fail bernama crop.php untuk mengendalikan logik pemangkasan imej.

2. Laksanakan logik

  1. Dapatkan gambar yang dimuat naik oleh pengguna
    Kami terlebih dahulu memerlukan borang HTML untuk mendapatkan gambar yang dimuat naik oleh pengguna. Dalam crop.php, anda boleh menambah kod berikut:

    <form method="POST" enctype="multipart/form-data">
     <input type="file" name="image" />
     <input type="submit" value="上传并裁剪图片" />
    </form>

  2. Memproses imej

    Dalam crop.php, tambah kod berikut untuk memproses imej:
  3. 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="Cara menggunakan PHP untuk membangunkan fungsi pemangkasan imej yang mudah" >";
         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('文件上传失败');
     }
    } 

  4. Simpan imej yang dipangkas

    Teruskan menambah dalam crop.php kod berikut digunakan untuk menyimpan imej yang dipangkas:

    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="Cara menggunakan PHP untuk membangunkan fungsi pemangkasan imej yang mudah" >";
         }
     } else {
         die('图片保存失败');
     }
    }

    3. Berlatih menjalankan
  5. Sediakan persekitaran PHP pada pelayan dan pastikan perpustakaan GD dipasang.
  6. Muat naik fail crop.php ke pelayan dan pastikan folder muat naik mempunyai kebenaran membaca dan menulis.
  7. Akses fail crop.php dalam penyemak imbas anda untuk memuat naik dan memangkas imej.


Kesimpulan:

Melalui langkah di atas, kita boleh menggunakan PHP untuk membangunkan fungsi pemangkasan imej yang mudah. Apabila pengguna memuat naik imej, kami boleh menggunakan perpustakaan Cropper.js untuk melaksanakan fungsi pemotongan imej dan menyimpan imej yang dipangkas. Fungsi pemangkasan imej ringkas ini boleh disematkan dengan mudah ke dalam laman web atau aplikasi web untuk meningkatkan pengalaman pengguna dan memenuhi pelbagai keperluan pemprosesan imej. 🎜

Atas ialah kandungan terperinci Cara menggunakan PHP untuk membangunkan fungsi pemangkasan imej yang mudah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn