Maison  >  Article  >  développement back-end  >  Méthode pour réaliser un traitement en temps réel et un aperçu rapide des images à l'aide de PHP et de l'interface de stockage cloud Qiniu

Méthode pour réaliser un traitement en temps réel et un aperçu rapide des images à l'aide de PHP et de l'interface de stockage cloud Qiniu

王林
王林original
2023-07-05 09:28:391740parcourir

Comment utiliser l'interface de stockage cloud PHP et Qiniu pour obtenir un traitement en temps réel et un aperçu rapide des images

Résumé : Cet article présentera comment utiliser l'interface de stockage cloud PHP et Qiniu pour obtenir un traitement en temps réel et un aperçu rapide des images. Nous expliquons les étapes spécifiques à travers un exemple de code pour aider les lecteurs à comprendre comment traiter les images, générer des vignettes et fournir des fonctions de prévisualisation rapide.

Introduction

Avec le développement rapide d'Internet, les images, en tant qu'éléments importants de la transmission de l'information, sont largement utilisées dans divers domaines. Afin d'améliorer l'expérience utilisateur, nous devons généralement traiter les images, comme générer des vignettes, ajouter des filigranes, etc. Dans le même temps, dans les scénarios à forte concurrence, afin de fournir des effets de prévisualisation rapides, nous devons nous appuyer sur des services de stockage cloud pour stocker et accélérer l'accès aux images.

Qiniu Cloud Storage est l'une des principales plates-formes de stockage cloud en Chine, offrant des interfaces riches et des fonctions puissantes pour faciliter le traitement et le stockage des images par les développeurs. Combiné avec PHP comme langage côté serveur, nous pouvons facilement réaliser un traitement en temps réel et un aperçu rapide des images.

Préparation de l'environnement

Avant de commencer la mise en œuvre, nous devons effectuer les préparations suivantes :

  1. Enregistrez un compte de stockage cloud Qiniu et créez un nouvel espace de stockage.
  2. Installez PHP, il est recommandé d'utiliser la dernière version.
  3. Installez composer pour gérer les packages de dépendances PHP.

Installer les bibliothèques dépendantes

Ouvrez un terminal dans le répertoire du projet et exécutez la commande suivante pour installer les bibliothèques dépendantes requises :

composer require qiniu/php-sdk
composer require intervention/image

Exemple de code

L'exemple de code suivant montre comment utiliser PHP et l'interface de stockage cloud Qiniu pour obtenir traitement de traitement d'image en temps réel et aperçu rapide.

<?php
require 'vendor/autoload.php';

use InterventionImageImageManagerStatic as Image;
use QiniuAuth;
use QiniuStorageUploadManager;

// 七牛云账号信息
$accessKey = '<Your Access Key>';
$secretKey = '<Your Secret Key>';
$bucket = '<Your Bucket Name>';

// 构建Auth对象
$auth = new Auth($accessKey, $secretKey);

// 在前端直传文件时,可以使用七牛云的回调机制获取到上传成功的文件信息
$callbackBody = '{"key": $(key), "hash": $(etag), "width": $(imageInfo.width), "height": $(imageInfo.height)}';
$callbackUrl = '<Your Callback URL>';
$callbackHost = '<Your Callback Host>';
$policy = array(
    'callbackUrl' => $callbackUrl,
    'callbackBody' => $callbackBody,
    'callbackHost' => $callbackHost,
    'mimeLimit' => 'image/*', // 限制文件类型为图片
);

// 生成上传Token
$token = $auth->uploadToken($bucket, null, 3600, $policy);

// 处理图片并上传到七牛云
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_FILES['image'])) {
    $file = $_FILES['image'];

    if ($file['error'] === 0) {
        // 使用Intervention/Image库处理图片
        $image = Image::make($file['tmp_name']);

        // 生成缩略图(宽度为300px)
        $thumbnail = $image->resize(300, null, function ($constraint) {
            $constraint->aspectRatio();
            $constraint->upsize();
        });

        // 保存缩略图
        $thumbnailFile = tempnam(sys_get_temp_dir(), 'thumbnail_');
        $thumbnail->save($thumbnailFile);

        // 上传图片到七牛云
        $uploader = new UploadManager();
        $uploadResult = $uploader->putFile($token, null, $thumbnailFile);

        // 输出结果(包含上传成功后的文件信息)
        echo json_encode($uploadResult, JSON_PRETTY_PRINT);
        exit;
    }
}
?>
<!DOCTYPE html>
<html>
<head>
    <title>图片上传示例</title>
</head>
<body>
<form method="post" enctype="multipart/form-data">
    <input type="file" name="image">
    <button type="submit">上传</button>
</form>
</body>
</html>

Résumé

En utilisant PHP et l'interface de stockage cloud Qiniu, nous pouvons facilement réaliser un traitement en temps réel et un aperçu rapide des images. Cet article présente les étapes de mise en œuvre en détail à l'aide d'un exemple de code et fournit un exemple de téléchargement d'images, que les lecteurs peuvent étendre et modifier en fonction de leurs propres besoins.

Dans les applications pratiques, nous pouvons en apprendre davantage sur l'utilisation de fonctions avancées, telles que l'ajout de filigranes, le recadrage d'images, etc. selon la documentation de l'interface de Qiniu Cloud Storage. Dans le même temps, nous pouvons également utiliser le service d'accélération CDN fourni par Qiniu Cloud Storage pour accélérer l'accès aux images et améliorer l'expérience utilisateur. J'espère que cet article sera utile aux développeurs dans le traitement et le stockage d'images dans des projets réels.

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