data_center/vendor/qcloud/cos-sdk-v5/sample/aIImageCropProcess.php

84 lines
6.5 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
require dirname(__FILE__, 2) . '/vendor/autoload.php';
$secretId = "SECRETID"; //替换为用户的 secretId请登录访问管理控制台进行查看和管理https://console.cloud.tencent.com/cam/capi
$secretKey = "SECRETKEY"; //替换为用户的 secretKey请登录访问管理控制台进行查看和管理https://console.cloud.tencent.com/cam/capi
$region = "ap-beijing"; //替换为用户的 region已创建桶归属的region可以在控制台查看https://console.cloud.tencent.com/cos5/bucket
$cosClient = new Qcloud\Cos\Client(
array(
'region' => $region,
'schema' => 'https', //协议头部默认为http
'credentials'=> array(
'secretId' => $secretId,
'secretKey' => $secretKey)));
try {
// -------------------- 1. 下载时处理-原图存储在COS -------------------- //
$object = 'xxx.jpg';
$ciProcessParams = new Qcloud\Cos\ImageParamTemplate\CIProcessTransformation('AIImageCrop');
$ciProcessParams->addParam('width', 100); // 需要裁剪区域的宽度与height共同组成所需裁剪的图片宽高比例输入数字请大于0、小于图片宽度的像素值
$ciProcessParams->addParam('height', 100); // 需要裁剪区域的高度与width共同组成所需裁剪的图片宽高比例输入数字请大于0、小于图片高度的像素值width : height建议取值在[1, 2.5]之间,超过这个范围可能会影响效果
$ciProcessParams->addParam('fixed', 0); // 是否严格按照 width 和 height 的值进行输出。
$ciProcessParams->addParam('ignore-error', 1); // 当此参数为1时针对文件过大等导致处理失败的场景会直接返回原图而不报错。
$query = $ciProcessParams->queryString();
$downloadUrl = $cosClient->getObjectUrl('examplebucket-1250000000', $object); // 获取下载链接
echo "{$downloadUrl}&{$query}"; // 携带签名的图片地址以“&”连接
// -------------------- 1. 下载时处理-原图存储在COS -------------------- //
// -------------------- 2. 下载时处理-原图来自其他链接 -------------------- //
$ciProcessParams = new Qcloud\Cos\ImageParamTemplate\CIProcessTransformation('AIImageCrop');
$ciProcessParams->addParam('detect-url', 'https://xxx.com/xxx.jpg');
$ciProcessParams->addParam('width', 100); // 需要裁剪区域的宽度与height共同组成所需裁剪的图片宽高比例输入数字请大于0、小于图片宽度的像素值
$ciProcessParams->addParam('height', 100); // 需要裁剪区域的高度与width共同组成所需裁剪的图片宽高比例输入数字请大于0、小于图片高度的像素值width : height建议取值在[1, 2.5]之间,超过这个范围可能会影响效果
$ciProcessParams->addParam('fixed', 0); // 是否严格按照 width 和 height 的值进行输出。
$ciProcessParams->addParam('ignore-error', 1); // 当此参数为1时针对文件过大等导致处理失败的场景会直接返回原图而不报错。
$query = $ciProcessParams->queryString();
$downloadUrl = $cosClient->getObjectUrl('examplebucket-1250000000', ''); // 获取下载链接
echo "{$downloadUrl}&{$query}";
// -------------------- 2. 下载时处理-原图来自其他链接 -------------------- //
// ---------------------------- 3. 上传时处理 ---------------------------- //
$ciProcessParams = new Qcloud\Cos\ImageParamTemplate\CIProcessTransformation('AIImageCrop');
$ciProcessParams->addParam('width', 100); // 需要裁剪区域的宽度与height共同组成所需裁剪的图片宽高比例输入数字请大于0、小于图片宽度的像素值
$ciProcessParams->addParam('height', 100); // 需要裁剪区域的高度与width共同组成所需裁剪的图片宽高比例输入数字请大于0、小于图片高度的像素值width : height建议取值在[1, 2.5]之间,超过这个范围可能会影响效果
$ciProcessParams->addParam('fixed', 0); // 是否严格按照 width 和 height 的值进行输出。
$ciProcessParams->addParam('ignore-error', 1); // 当此参数为1时针对文件过大等导致处理失败的场景会直接返回原图而不报错。
$picOperations = new Qcloud\Cos\ImageParamTemplate\PicOperationsTransformation();
$picOperations->setIsPicInfo(1); // is_pic_info
$picOperations->addRule($ciProcessParams, "output.png"); // rules
$result = $cosClient->putObject(array(
'Bucket' => 'examplebucket-125000000', //存储桶名称由BucketName-Appid 组成可以在COS控制台查看 https://console.cloud.tencent.com/cos5/bucket
'Key' => 'object.jpg',
'Body' => fopen('/tmp/local.jpg', 'rb'), // 本地文件
'PicOperations' => $picOperations->queryString(),
));
// 请求成功
print_r($result);
// ---------------------------- 3. 上传时处理 ---------------------------- //
// --------------------- 4. 云上数据处理 ------------------------------ //
$ciProcessParams = new Qcloud\Cos\ImageParamTemplate\CIProcessTransformation('AIImageCrop');
$ciProcessParams->addParam('width', 100); // 需要裁剪区域的宽度与height共同组成所需裁剪的图片宽高比例输入数字请大于0、小于图片宽度的像素值
$ciProcessParams->addParam('height', 100); // 需要裁剪区域的高度与width共同组成所需裁剪的图片宽高比例输入数字请大于0、小于图片高度的像素值width : height建议取值在[1, 2.5]之间,超过这个范围可能会影响效果
$ciProcessParams->addParam('fixed', 0); // 是否严格按照 width 和 height 的值进行输出。
$ciProcessParams->addParam('ignore-error', 1); // 当此参数为1时针对文件过大等导致处理失败的场景会直接返回原图而不报错。
$picOperations = new Qcloud\Cos\ImageParamTemplate\PicOperationsTransformation();
$picOperations->setIsPicInfo(1); // is_pic_info
$picOperations->addRule($ciProcessParams, 'output.jpg'); // rules
$result = $cosClient->ImageProcess(array(
'Bucket' => 'examplebucket-1250000000', //存储桶名称由BucketName-Appid 组成可以在COS控制台查看 https://console.cloud.tencent.com/cos5/bucket
'Key' => 'test.jpg',
'PicOperations' => $picOperations->queryString(),
));
// 请求成功
print_r($result);
// --------------------- 4. 云上数据处理 ------------------------------ //
} catch (\Exception $e) {
// 请求失败
echo($e);
}