You need to enable JavaScript to run this app.
导航

图片处理(PHP SDK)

最近更新时间2024.02.04 18:31:08

首次发布时间2023.10.31 11:35:40

TOS 支持对存储的图片进行处理,包括图片缩放、图片裁剪、图片水印、格式转换等图片处理操作。本文介绍如何通过 TOS PHP SDK 进行基础图片处理。

注意事项

  • 原图格式仅支持 JPG、PNG、BMP、GIF、WEBP 和 TIFF。
  • 原图大小不能超过 20MB。
  • 原图宽、高不能超过 30000 px,总像素不能超过 2.5 亿 px(旋转操作的原图宽、高不能超过 4096 px)。
  • 缩放后的图片宽、高不能超过 16384 px,总像素不能超过 16777216 px。

示例代码

以下代码展示如何将图片宽度固定为 100px,然后将图片下载到本地。

<?php

// 假设使用源码安装且需要集成 SDK 的脚本与 TOS PHP SDK 的源码在同一个父目录下。
require_once __DIR__  .  '/autoload.php';

use Tos\TosClient;
use Tos\Exception\TosClientException;
use Tos\Exception\TosServerException;
use Tos\Model\HeadObjectInput;
use Tos\Model\GetObjectInput;

$output = null;
try {
    $client = new TosClient([
        'region' => 'your region',
        'endpoint' => 'your endpoint',
        // 从环境变量中获取访问密钥
        'ak' => getenv('TOS_ACCESS_KEY'),
        'sk' => getenv('TOS_SECRET_KEY'),
    ]);
    
    $input = new GetObjectInput('bucket-test',  'key-test');
    
    // 执行图片缩放操作。
    $input->setProcess('image/resize,w_100');
    
    // 执行图片处理操作后,将处理后的图片保存至指定的存储桶。执行图片保存操作的账号必须拥有图片转存的目标桶的写权限。
    // $input->setSaveBucket('bucket-test2');
    // $input->setSaveObject('key-test2');
    
    // 执行获取图片元信息操作。
    // $input->setProcess('image/info');
    
    // 执行异常图片检测操作。
    // $input->setProcess('image/inspect');
    $output = $client->getObject($input);
    echo $output->getRequestId() . PHP_EOL;
   
    // 获取图片处理后的数据。
    echo $output->getContent()->getContents() . PHP_EOL;
    $output->getContent()->close();
    
    
} catch (TosClientException $ex) {
    echo $ex->getMessage() . PHP_EOL;
} catch (TosServerException $ex) {
    echo $ex->getRequestId() . PHP_EOL;
    echo $ex->getStatusCode() . PHP_EOL;
    echo $ex->getErrorCode() . PHP_EOL;
} finally {
    if($output){
        $output->getContent()->close();
    }
}

相关文档

关于图片处理的详细介绍,请参见图片处理概述