Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk memampatkan saiz fail imej secara berkelompok menggunakan PHP

Bagaimana untuk memampatkan saiz fail imej secara berkelompok menggunakan PHP

WBOY
WBOYasal
2023-08-25 14:25:451786semak imbas

Bagaimana untuk memampatkan saiz fail imej secara berkelompok menggunakan PHP

Cara menggunakan PHP untuk memampatkan saiz fail imej secara berkelompok

Pengenalan:
Dengan perkembangan Internet, gambar menjadi semakin biasa dalam kehidupan seharian kita. Walau bagaimanapun, fail gambar besar dan kecil juga membawa masalah penyimpanan dan penghantaran. Untuk mengurangkan saiz fail imej dan meningkatkan kelajuan pemuatan tapak web, kami boleh menggunakan PHP untuk memampatkan saiz fail imej secara berkelompok. Artikel ini akan memperkenalkan cara menggunakan PHP untuk memampatkan kumpulan saiz fail imej dan memberikan contoh kod yang berkaitan.

Langkah:

  1. Dapatkan senarai fail imej:
    Pertama, kita perlu mendapatkan senarai fail imej untuk dimampatkan. Ini boleh dicapai dengan melintasi fail imej dalam folder, atau membaca laluan imej yang disimpan dalam pangkalan data. Berikut ialah coretan kod sampel untuk mendapatkan semua fail imej di bawah folder:
$directory = 'images/';
$fileList = glob($directory . '*.{jpg,jpeg,png,gif}', GLOB_BRACE);
  1. Tentukan saiz sasaran dan kualiti mampatan imej yang dimampatkan:
    Sebelum melakukan pemampatan imej, kita perlu menentukan saiz dan pemampatan sasaran kualiti imej. Biasanya, kita boleh memilih untuk mengurangkan saiz gambar kepada separuh daripada saiz asal dan menetapkan kualiti mampatan kepada 80-90. Berikut ialah coretan kod sampel untuk menentukan saiz sasaran dan kualiti mampatan:
$targetWidth = 200; // 目标宽度
$targetQuality = 80; // 目标质量
  1. Lakukan pemampatan imej:
    Seterusnya, kita boleh menggunakan perpustakaan GD PHP untuk pemampatan imej. Pustaka GD menyediakan pelbagai fungsi pemprosesan imej yang boleh membantu kami memproses imej. Berikut ialah contoh coretan kod untuk memampatkan satu imej:
foreach($fileList as $file) {
    $imageInfo = getimagesize($file);
    
    $sourceWidth = $imageInfo[0]; // 原始宽度
    $sourceHeight = $imageInfo[1]; // 原始高度
    
    $sourceImage = imagecreatefromjpeg($file); // 根据文件类型选择对应的函数
    
    $targetHeight = round($sourceHeight * $targetWidth / $sourceWidth); // 计算目标高度
    
    $targetImage = imagecreatetruecolor($targetWidth, $targetHeight); // 创建目标图像
    
    imagecopyresampled($targetImage, $sourceImage, 0, 0, 0, 0, $targetWidth, $targetHeight, $sourceWidth, $sourceHeight); // 图像复制和缩放
    
    imagejpeg($targetImage, $file, $targetQuality); // 保存压缩后的图片
    
    imagedestroy($sourceImage); // 释放资源
    imagedestroy($targetImage);
}
  1. Rujukan kod penuh:
    Berikut ialah contoh kod lengkap untuk memampatkan saiz fail imej dalam kelompok:
$directory = 'images/';
$fileList = glob($directory . '*.{jpg,jpeg,png,gif}', GLOB_BRACE);

$targetWidth = 200; // 目标宽度
$targetQuality = 80; // 目标质量

foreach($fileList as $file) {
    $imageInfo = getimagesize($file);
    
    $sourceWidth = $imageInfo[0]; // 原始宽度
    $sourceHeight = $imageInfo[1]; // 原始高度
    
    $sourceImage = imagecreatefromjpeg($file); // 根据文件类型选择对应的函数
    
    $targetHeight = round($sourceHeight * $targetWidth / $sourceWidth); // 计算目标高度
    
    $targetImage = imagecreatetruecolor($targetWidth, $targetHeight); // 创建目标图像
    
    imagecopyresampled($targetImage, $sourceImage, 0, 0, 0, 0, $targetWidth, $targetHeight, $sourceWidth, $sourceHeight); // 图像复制和缩放
    
    imagejpeg($targetImage, $file, $targetQuality); // 保存压缩后的图片
    
    imagedestroy($sourceImage); // 释放资源
    imagedestroy($targetImage);
}

Ringkasan:
Dengan menggunakan PHP Dengan memampatkan imej saiz dalam kelompok, kami boleh mengurangkan saiz fail imej dengan berkesan dan meningkatkan kelajuan pemuatan tapak web. Artikel ini menyediakan kaedah mudah dan contoh kod yang sepadan, tetapi ia perlu disesuaikan dan dilanjutkan mengikut situasi sebenar. Saya harap artikel ini membantu anda memproses dan mengoptimumkan fail imej dengan lebih baik.

Atas ialah kandungan terperinci Bagaimana untuk memampatkan saiz fail imej secara berkelompok menggunakan PHP. 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