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

WBOY
Libérer: 2023-08-25 14:28:02
original
1740 Les gens l'ont consulté

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);
Copier après la connexion
  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; // 目标质量
Copier après la connexion
  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);
}
Copier après la connexion
  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);
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!