TOS 支持对存储的图片进行处理,包括图片缩放、图片裁剪、图片水印、格式转换等图片处理操作。本文介绍如何通过 TOS C++ SDK 进行基础图片处理。
以下代码展示如何将图片高度固定为 100px,图片格式转换为 JPG 格式,然后将图片命名为 temp.jpg,并下载到本地。
#include "TosClientV2.h" using namespace VolcengineTos; int main(void){ // 初始化 TOS 账号信息 // Your Region 填写 Bucket 所在 Region std::string region = "Your Region"; std::string accessKey = std::getenv("TOS_ACCESS_KEY"); std::string secretKey = std::getenv("TOS_SECRET_KEY"); // 填写 Bucket 名称,例如 examplebucket std::string bucketName = "examplebucket"; // 指定原图名称。如果图片不在Bucket根目录,需携带图片完整路径,例如exampledir/exampleobject.jpg。 std::string objectName = "exampledir/exampleobject.jpg"; // 下载Object到本地文件temp.jpg,并保存到指定的本地路径中,例如/localpath/temp.jpg,如果指定的本地文件存在会覆盖,不存在则新建。 std::string filePath = "/localpath/temp.jpg"; // 初始化网络等资源 InitializeClient(); // 创建交互的 client TosClientV2 client(region, accessKey, secretKey); GetObjectToFileInput input(bucketName, objectName, filePath); std::string style = "image/resize,h_100/format,jpg"; input.setProcess(style); auto output = client.getObjectToFile(input); if (!output.isSuccess()) { // 异常处理 std::cout << "GetObjectToFile failed." << output.error().String() << std::endl; // 释放网络等资源 CloseClient(); return -1; } std::cout << "GetObjectToFile success. the object etag:" << output.result().getGetObjectBasicOutput().getETags() << std::endl; // 释放网络等资源 CloseClient(); return 0; }
关于图片处理的详细介绍,请参见图片处理概述。