Maison  >  Article  >  développement back-end  >  Méthode pour réaliser le traitement de compression d'image à l'aide de PHP et de l'interface de stockage cloud Qiniu

Méthode pour réaliser le traitement de compression d'image à l'aide de PHP et de l'interface de stockage cloud Qiniu

WBOY
WBOYoriginal
2023-07-05 18:07:411530parcourir

Comment utiliser PHP et l'interface Qiniu Cloud Storage pour implémenter le traitement de compression d'images

Dans le développement Web, il est souvent nécessaire de compresser les images pour améliorer la vitesse de chargement des pages Web et économiser de la bande passante, et Qiniu Cloud Storage fournit des interfaces et des fonctions riches, vous pouvez compresser facilement les images. Cet article expliquera comment utiliser PHP et l'interface de stockage cloud Qiniu pour implémenter le traitement de compression d'image et donnera des exemples de code correspondants.

Tout d'abord, nous devons créer un espace de stockage sur Qiniu Cloud Storage Platform et obtenir la AccessKey et la SecretKey correspondantes, qui seront utilisées pour authentifier l'interface.

Ensuite, nous devons utiliser la bibliothèque CURL fournie par PHP pour envoyer des requêtes HTTP et traiter les résultats renvoyés. Nous pouvons introduire la bibliothèque CURL via le code suivant :

<?php
    $ch = curl_init();//初始化
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);//将结果返回到变量而不是直接输出
    curl_setopt($ch, CURLOPT_HEADER, false);//header信息不输出

Ensuite, nous utilisons le code suivant pour implémenter la fonction de compression des images :

<?php
    $accessKey = 'your_access_key';
    $secretKey = 'your_secret_key';
    $bucket = 'your_bucket';
    $key = 'your_image_key';

    $imageURL = "http://" . $bucket . ".qiniudn.com/" . $key;//获取图片的URL

    $options = "imageView2/2/w/500/h/500/q/90";//压缩图片的参数
    $url = "http://pfop.qiniu.com/pfop/";

    $data = array("bucket" => $bucket, "key" => $key, "fops" => $options);//构建请求参数

    $encodedData = json_encode($data);

    $sign = hash_hmac('sha1', $encodedData, $secretKey, true);//对参数进行签名

    $encodedSign = str_replace(array('+', '/'), array('-', '_'), base64_encode($sign));//对签名进行URL安全的base64编码

    $uploadURL = $url . $encodedSign;

    curl_setopt($ch, CURLOPT_URL, $uploadURL);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $encodedData);

    $result = curl_exec($ch);//发送请求并获取返回结果

    if ($result === false) {
        echo "Error: " . curl_error($ch);//发送请求失败,输出错误信息
    } else {
        echo "Success: " . $result;//发送请求成功,输出返回结果
    }

    curl_close($ch);//关闭请求
?>

Dans le code ci-dessus, nous définissons d'abord l'AccessKey, la SecretKey et le nom de l'espace de stockage ( seau) Et la clé de l'image. Ensuite, nous avons construit une URL d'image appropriée et défini les paramètres (options) de compression de l'image. Ici, nous avons spécifié la largeur et la hauteur de l'image à 500 pixels, et défini la qualité de compression à 90. Ensuite, nous construisons ces paramètres dans un tableau et les encodons via json_encode(). Ensuite, nous signons ce tableau codé pour obtenir une valeur signée. Enfin, nous construisons ensemble la valeur de signature et les paramètres dans une URL et envoyons la requête HTTP à l'aide de la bibliothèque CURL. Si la demande aboutit, nous obtiendrons un résultat et pourrons imprimer le résultat en cas de succès.

Il convient de noter que le code ci-dessus n'est qu'un exemple simple et doit être modifié de manière appropriée en fonction de vos propres besoins lorsqu'il est utilisé dans la pratique.

En résumé, nous avons réussi à compresser des images en utilisant PHP et l'interface de stockage cloud Qiniu. Grâce à cette méthode, nous pouvons facilement réduire la taille de l'image et améliorer la vitesse de chargement de la page Web pour offrir aux utilisateurs une meilleure expérience. J'espère que cet article pourra être utile à tous ceux qui rencontrent des problèmes de traitement d'image en cours de développement.

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