Maison >développement back-end >tutoriel php >Comment compresser par lots la taille d'un fichier image à l'aide de PHP

Comment compresser par lots la taille d'un fichier image à l'aide de PHP

WBOY
WBOYoriginal
2023-08-25 14:25:451788parcourir

Comment compresser par lots la taille dun fichier image à laide de PHP

Comment utiliser PHP pour compresser par lots la taille des fichiers image

Introduction :
Avec le développement d'Internet, les images deviennent de plus en plus courantes dans notre vie quotidienne. Cependant, les fichiers image, petits et grands, posent également des problèmes de stockage et de transmission. Afin de réduire la taille des fichiers image et d’améliorer la vitesse de chargement du site Web, nous pouvons utiliser PHP pour compresser par lots la taille des fichiers image. Cet article explique comment utiliser PHP pour compresser par lots la taille des fichiers image et fournit des exemples de code pertinents.

Étapes :

  1. Obtenir la liste des fichiers image :
    Tout d'abord, nous devons obtenir la liste des fichiers image à compresser. Ceci peut être réalisé en parcourant les fichiers image dans le dossier ou en lisant le chemin de l'image stocké dans la base de données. Ce qui suit est un exemple d'extrait de code pour obtenir tous les fichiers image dans un dossier :
$directory = 'images/';
$fileList = glob($directory . '*.{jpg,jpeg,png,gif}', GLOB_BRACE);
  1. Définissez la taille cible et la qualité de compression de l'image compressée :
    Avant d'effectuer la compression de l'image, nous devons définir la taille et la compression de la cible. qualité des images. Habituellement, nous pouvons choisir de réduire la taille de l’image à la moitié de la taille originale et de régler la qualité de compression sur 80-90. Voici un exemple d'extrait de code pour définir la taille cible et la qualité de compression :
$targetWidth = 200; // 目标宽度
$targetQuality = 80; // 目标质量
  1. Effectuer une compression d'image :
    Ensuite, nous pouvons utiliser la bibliothèque GD de PHP pour la compression d'image. La bibliothèque GD fournit une multitude de fonctions de traitement d'images qui peuvent nous aider à traiter les images. Voici un exemple d'extrait de code pour compresser une seule image :
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. Référence complète du code :
    Voici un exemple de code complet pour compresser la taille des fichiers image par lots :
$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);
}

Résumé :
En utilisant PHP En compressant le fichier image tailles par lots, nous pouvons réduire efficacement la taille des fichiers image et améliorer la vitesse de chargement du site Web. Cet article fournit une méthode simple et un exemple de code correspondant, mais il doit être adapté et étendu en fonction de la situation réelle. J'espère que cet article vous aidera à mieux traiter et optimiser les fichiers image.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn