Maison  >  Article  >  développement back-end  >  Méthode de compression PHP pour télécharger des images

Méthode de compression PHP pour télécharger des images

WBOY
WBOYoriginal
2023-05-06 19:08:061443parcourir

Avec le développement rapide de l'Internet mobile, le traitement et la transmission des images deviennent de plus en plus importants. Les images volumineuses peuvent avoir un impact sur les performances du serveur et des méthodes de compression sont nécessaires pour traiter et télécharger les images. Cet article explique comment utiliser PHP pour compresser les images téléchargées.

1. La nécessité de la compression d'image

La compression d'image est une technologie fréquemment utilisée, qui peut considérablement améliorer la vitesse de transmission des images et économiser la bande passante de transmission. Bien entendu, la compression des images à une taille suffisamment petite peut réduire l’encombrement du stockage et les temps de chargement.

En d'autres termes, si l'image demandée est trop grande, la vitesse de chargement des pages peut ralentir. L'utilisation de la compression pour traiter les images peut grandement améliorer la vitesse de chargement des pages.

2. Méthode de compression d'images PHP

PHP fournit une série de fonctions pour traiter les images. Les fonctions de traitement d'image couramment utilisées sont les suivantes :

imagecreatefromjpeg //从JPEG格式的文件或URL创建一个新的图像
imagesx //获取图像宽度
imagesy //获取图像高度
imagecopyresampled //重采样拷贝部分图像并调整大小,这里用来调整大小和压缩图像
imagejpeg //经过压缩后将图像输出到浏览器或文件,这里用来输出图像

Avec l'appel de fonction de dessin ci-dessus, nous pouvons compresser et télécharger des images.

3. Méthode de téléchargement d'images PHP

Semblable aux fonctions de traitement d'images, PHP fournit également certaines fonctions pour le téléchargement de fichiers. Les fonctions courantes de téléchargement de fichiers sont les suivantes :

move_uploaded_file //将上传文件移到新位置
$_FILES //包含关于上传文件的信息

Lorsqu'un utilisateur télécharge un fichier, utilisez la fonction move_uploaded_file pour déplacer le fichier vers le répertoire spécifié et utilisez le tableau $_FILES pour accéder aux informations sur le fichier téléchargé. La fonction de téléchargement de fichier de base peut être complétée à l'aide du code suivant :

if(move_uploaded_file($_FILES["file"]["tmp_name"], $upload_dir)){
    echo "文件上传成功!";
} else{
    echo "文件上传失败!";
}

IV. Exemple complet de compression et de téléchargement d'image PHP

Ce qui suit est un script PHP de base pour compresser le fichier image téléchargé à une taille spécifiée et le télécharger sur The. répertoire de téléchargement sur le serveur.

<?php
    //上传文件夹
    $upload_dir = "uploads/";
    //生成唯一的文件名
    $filename = md5(date('YmdHis')).'.jpg';
    //压缩后的图片质量
    $quality = 50;

    //上传的图像信息
    $temp = $_FILES['file']['tmp_name'];
    $img_info = getimagesize($temp);
    $img_type = $img_info[2];

    //使用不同的函数加载图像
    switch($img_type){
        case 1: $img = imagecreatefromgif($temp); break;
        case 2: $img = imagecreatefromjpeg($temp); break;
        case 3: $img = imagecreatefrompng($temp); break;
    }

    //缩略图尺寸限制,如果长或宽超出,则自动按比例缩小成这个宽度或高度
    $width_limit = 720;
    $height_limit = 480;
    $width = imagesx($img);
    $height = imagesy($img);
    if($width > $width_limit || $height > $height_limit){
        if($width/$width_limit > $height/$height_limit){
            $new_width = $width_limit;
            $new_height = round($height/$width* $new_width);
        } else{
            $new_height = $height_limit;
            $new_width = round($width/$height* $new_height);
        }
        $tmp_img = imagecreatetruecolor($new_width,$new_height);
        imagecopyresampled($tmp_img,$img,0,0,0,0,$new_width,$new_height,$width,$height);
        imagedestroy($img);
        $img = $tmp_img;
    }

    //将图像转换成JPEG格式
    imagejpeg($img, $upload_dir.$filename, $quality);
    imagedestroy($img);

    //输出上传成功信息
    echo '{"code":0,"file":"'.$filename.'","msg":"上传成功!"}';

5. Conclusion

En utilisant la fonction PHP ci-dessus, nous pouvons facilement compresser et télécharger le fichier image téléchargé dans le répertoire spécifié. Surtout lorsqu'il s'agit de télécharger et de compresser des images sur des appareils mobiles, il est très pratique d'utiliser PHP pour implémenter ces fonctions. Cependant, dans les applications pratiques, il convient de noter que, comme l'utilisation de PHP pour traiter les images nécessite beaucoup de temps et de ressources serveur, nous devons limiter et optimiser les images de manière appropriée pour garantir les performances du serveur et l'expérience utilisateur.

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