Rumah >pembangunan bahagian belakang >tutorial php >Kaedah untuk merealisasikan pemprosesan masa nyata dan pratonton pantas imej menggunakan antara muka storan awan PHP dan Qiniu

Kaedah untuk merealisasikan pemprosesan masa nyata dan pratonton pantas imej menggunakan antara muka storan awan PHP dan Qiniu

王林
王林asal
2023-07-05 09:28:391785semak imbas

Cara menggunakan antara muka storan awan PHP dan Qiniu untuk mencapai pemprosesan masa nyata dan pratonton pantas imej

Abstrak: Artikel ini akan memperkenalkan cara menggunakan antara muka storan awan PHP dan Qiniu untuk mencapai pemprosesan masa nyata dan pratonton pantas imej. Kami menerangkan langkah khusus melalui kod sampel untuk membantu pembaca memahami cara memproses imej, menjana lakaran kenit dan menyediakan fungsi pratonton pantas.

Pengenalan

Dengan perkembangan pesat Internet, gambar, sebagai salah satu elemen penting penghantaran maklumat, digunakan secara meluas dalam pelbagai bidang. Untuk meningkatkan pengalaman pengguna, kami biasanya perlu memproses imej, seperti menjana lakaran kecil, menambah tera air, dsb. Pada masa yang sama, dalam senario konkurensi tinggi, untuk memberikan kesan pratonton pantas, kami perlu bergantung pada perkhidmatan storan awan untuk menyimpan dan mempercepatkan akses imej.

Qiniu Cloud Storage ialah salah satu platform storan awan terkemuka di China, menyediakan antara muka yang kaya dan fungsi berkuasa untuk memudahkan pembangun memproses dan menyimpan imej. Digabungkan dengan PHP sebagai bahasa sebelah pelayan, kami boleh mencapai pemprosesan masa nyata dan pratonton imej dengan mudah.

Persediaan alam sekitar

Sebelum memulakan pelaksanaan, kita perlu melengkapkan persediaan berikut:

  1. Daftar akaun storan awan Qiniu dan cipta ruang storan baharu.
  2. Pasang PHP, adalah disyorkan untuk menggunakan versi terkini.
  3. Pasang komposer untuk mengurus pakej pergantungan PHP.

Pasang perpustakaan bergantung

Buka terminal dalam direktori projek dan laksanakan arahan berikut untuk memasang perpustakaan bergantung yang diperlukan:

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

Kod sampel

Kod contoh berikut menunjukkan cara menggunakan antara muka storan awan PHP dan Qiniu untuk mencapai antara muka storan awan PHP dan Qiniu pemprosesan imej masa nyata dan pratonton pantas.

<?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>

Ringkasan

Dengan menggunakan antara muka storan awan PHP dan Qiniu, kami boleh mencapai pemprosesan masa nyata dan pratonton imej dengan mudah. Artikel ini memperkenalkan langkah-langkah pelaksanaan secara terperinci melalui kod sampel, dan menyediakan contoh muat naik imej, yang pembaca boleh melanjutkan dan mengubah suai mengikut keperluan mereka sendiri.

Dalam aplikasi praktikal, kita boleh mengetahui lebih lanjut tentang penggunaan fungsi lanjutan, seperti menambah tera air, memotong gambar, dsb. mengikut dokumentasi antara muka Storan Awan Qiniu. Pada masa yang sama, kami juga boleh menggunakan perkhidmatan pecutan CDN yang disediakan oleh Qiniu Cloud Storage untuk mempercepatkan akses imej dan meningkatkan pengalaman pengguna. Saya harap artikel ini akan membantu pembangun dalam pemprosesan imej dan penyimpanan dalam projek sebenar.

Atas ialah kandungan terperinci Kaedah untuk merealisasikan pemprosesan masa nyata dan pratonton pantas imej menggunakan antara muka storan awan PHP dan Qiniu. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn