日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

C++圖片處理

圖片處理是OSS提供的海量、安全、低成本、高可靠的圖片處理服務(wù)。原始圖片上傳到OSS后,您可以通過簡單的RESTful接口,在任何時間、任何地點、任何互聯(lián)網(wǎng)設(shè)備上對圖片進行處理。

注意事項

  • 本文以華東1(杭州)外網(wǎng)Endpoint為例。如果您希望通過與OSS同地域的其他阿里云產(chǎn)品訪問OSS,請使用內(nèi)網(wǎng)Endpoint。關(guān)于OSS支持的RegionEndpoint的對應(yīng)關(guān)系,請參見OSS地域和訪問域名。

  • 本文以OSS域名新建OSSClient為例。如果您希望通過自定義域名、STS等方式新建OSSClient,請參見新建OssClient。

使用圖片處理參數(shù)處理圖片

使用單個圖片處理參數(shù)處理圖片

#include <alibabacloud/oss/OssClient.h>
using namespace AlibabaCloud::OSS;

int main(void)
{
    /* 初始化OSS賬號信息。*/
            
    /* yourEndpoint填寫B(tài)ucket所在地域?qū)?yīng)的Endpoint。以華東1(杭州)為例,Endpoint填寫為https://oss-cn-hangzhou.aliyuncs.com。*/
    std::string Endpoint = "yourEndpoint";
    /* yourRegion填寫B(tài)ucket所在地域?qū)?yīng)的Region。以華東1(杭州)為例,Region填寫為cn-hangzhou。*/
    std::string Region = "yourRegion";
    /* 指定原圖所在的Bucket名稱,例如examplebucket。*/
    std::string BucketName = "examplebucket";
    /* 指定原圖名稱。如果圖片不在Bucket根目錄,需攜帶圖片完整路徑,例如exampledir/example.jpg。*/
    std::string ObjectName = "exampledir/example.jpg";

     /* 初始化網(wǎng)絡(luò)等資源。*/
    InitializeSdk();

    ClientConfiguration conf;
    conf.signatureVersion = SignatureVersionType::V4;
    /* 從環(huán)境變量中獲取訪問憑證。運行本代碼示例之前,請確保已設(shè)置環(huán)境變量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。*/
    auto credentialsProvider = std::make_shared<EnvironmentVariableCredentialsProvider>();
    OssClient client(Endpoint, credentialsProvider, conf);
    client.SetRegion(Region);

    /* 將圖片縮放為固定寬高100 px后保存在本地。*/
    std::string Process = "image/resize,m_fixed,w_100,h_100";
    GetObjectRequest request(BucketName, ObjectName);
    request.setProcess(Process);
    auto outcome = client.GetObject(request);
    if (outcome.isSuccess()) {
    std::cout << "Image processed successfully." << std::endl;
    } else {
    std::cout << "Failed to process image. Error code: " << outcome.error().Code()
              << ", Message: " << outcome.error().Message()
              << ", RequestId: " << outcome.error().RequestId() << std::endl;
    }

    /* 釋放網(wǎng)絡(luò)等資源。*/
    ShutdownSdk();
    return 0;
}

使用多個圖片處理參數(shù)處理圖片

使用多個圖片處理參數(shù)處理圖片時,多個參數(shù)之間以正斜線(/)分隔。

#include <alibabacloud/oss/OssClient.h>
using namespace AlibabaCloud::OSS;

int main(void)
{
    /* 初始化OSS賬號信息。*/
            
    /* yourEndpoint填寫B(tài)ucket所在地域?qū)?yīng)的Endpoint。以華東1(杭州)為例,Endpoint填寫為https://oss-cn-hangzhou.aliyuncs.com。*/
    std::string Endpoint = "yourEndpoint";
    /* yourRegion填寫B(tài)ucket所在地域?qū)?yīng)的Region。以華東1(杭州)為例,Region填寫為cn-hangzhou。*/
    std::string Region = "yourRegion";
    /* 指定原圖所在的Bucket名稱,例如examplebucket。*/
    std::string BucketName = "examplebucket";
    /* 指定原圖名稱。如果圖片不在Bucket根目錄,需攜帶圖片完整路徑,例如exampledir/example.jpg。*/
    std::string ObjectName = "exampledir/example.jpg";

     /* 初始化網(wǎng)絡(luò)等資源。*/
    InitializeSdk();

    ClientConfiguration conf;
    conf.signatureVersion = SignatureVersionType::V4;
    /* 從環(huán)境變量中獲取訪問憑證。運行本代碼示例之前,請確保已設(shè)置環(huán)境變量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。*/
    auto credentialsProvider = std::make_shared<EnvironmentVariableCredentialsProvider>();
    OssClient client(Endpoint, credentialsProvider, conf);
    client.SetRegion(Region);

    /* 將圖片縮放為固定寬高100 px后,再旋轉(zhuǎn)90°,之后保存在本地。*/
    std::string Process = "image/resize,m_fixed,w_100,h_100/rotate,90";
    GetObjectRequest request(BucketName, ObjectName);
    request.setProcess(Process);
    auto outcome = client.GetObject(request);
    if (outcome.isSuccess()) {
    std::cout << "Image processed successfully." << std::endl;
    } else {
    std::cout << "Failed to process image. Error code: " << outcome.error().Code()
              << ", Message: " << outcome.error().Message()
              << ", RequestId: " << outcome.error().RequestId() << std::endl;
    }

    /* 釋放網(wǎng)絡(luò)等資源。*/
    ShutdownSdk();
    return 0;
}

使用圖片樣式處理圖片

  1. 創(chuàng)建圖片樣式。

    您可以在一個樣式(Style)中包含多個圖片處理參數(shù),快速實現(xiàn)復(fù)雜的圖片處理操作。具體操作,請參見圖片樣式。

  2. 使用圖片樣式處理圖片。

    #include <alibabacloud/oss/OssClient.h>
    using namespace AlibabaCloud::OSS;
    
    int main(void)
    {
        /* 初始化OSS賬號信息。*/
        
        /* yourEndpoint填寫Bucket所在地域?qū)?yīng)的Endpoint。以華東1(杭州)為例,Endpoint填寫為https://oss-cn-hangzhou.aliyuncs.com。*/
        std::string Endpoint = "yourEndpoint";
        /* yourRegion填寫Bucket所在地域?qū)?yīng)的Region。以華東1(杭州)為例,Region填寫為cn-hangzhou。*/
        std::string Region = "yourRegion";
        /* 指定原圖所在的Bucket名稱,例如examplebucket。*/
        std::string BucketName = "examplebucket";
        /* 指定原圖名稱。如果圖片不在Bucket根目錄,需攜帶圖片完整路徑,例如exampledir/example.jpg。*/
        std::string ObjectName = "exampledir/example.jpg";
    
         /* 初始化網(wǎng)絡(luò)等資源。*/
        InitializeSdk();
    
        ClientConfiguration conf;
        conf.signatureVersion = SignatureVersionType::V4;
        /* 從環(huán)境變量中獲取訪問憑證。運行本代碼示例之前,請確保已設(shè)置環(huán)境變量OSS_ACCESS_KEY_IDOSS_ACCESS_KEY_SECRET。*/
        auto credentialsProvider = std::make_shared<EnvironmentVariableCredentialsProvider>();
        OssClient client(Endpoint, credentialsProvider, conf);
        client.SetRegion(Region);
    
        /* 使用圖片樣式處理圖片。其中,yourCustomStyleName填寫步驟1創(chuàng)建的圖片樣式名稱。*/
        std::string Process = "style/yourCustomStyleName";
        GetObjectRequest request(BucketName, ObjectName);
        request.setProcess(Process);
        auto outcome = client.GetObject(request);
        if (outcome.isSuccess()) {
        std::cout << "Image processed successfully." << std::endl;
        } else {
        std::cout << "Failed to process image. Error code: " << outcome.error().Code()
                  << ", Message: " << outcome.error().Message()
                  << ", RequestId: " << outcome.error().RequestId() << std::endl;
        }
      
        /* 釋放網(wǎng)絡(luò)等資源。*/
        ShutdownSdk();
        return 0;
    }

圖片處理持久化

您可以通過ImgSaveAs接口將圖片保存至當前存儲空間。以下代碼用于圖片處理持久化操作:

#include <alibabacloud/oss/OssClient.h>
#include <sstream>
using namespace AlibabaCloud::OSS;

int main(void)
{
    /* 初始化OSS賬號信息。*/
            
    /* yourEndpoint填寫B(tài)ucket所在地域?qū)?yīng)的Endpoint。以華東1(杭州)為例,Endpoint填寫為https://oss-cn-hangzhou.aliyuncs.com。*/
    std::string Endpoint = "yourEndpoint";
    /* yourRegion填寫B(tài)ucket所在地域?qū)?yīng)的Region。以華東1(杭州)為例,Region填寫為cn-hangzhou。*/
    std::string Region = "yourRegion";
    /* 指定Bucket名稱,例如examplebucket。*/
    std::string BucketName = "examplebucket";
    /* 指定原圖名稱。如果圖片不在Bucket根目錄,需攜帶文件完整路徑,例如example/example.jpg。*/
    std::string SourceObjectName = "example/example.jpg";
    /* 指定處理后圖片名稱。如果圖片不在Bucket根目錄,需攜帶文件完整訪問路徑,例如exampledir/example.jpg。*/
    std::string TargetObjectName = "exampledir/example.jpg";

    /* 初始化網(wǎng)絡(luò)等資源。*/
    InitializeSdk();

    ClientConfiguration conf;
    conf.signatureVersion = SignatureVersionType::V4;
    /* 從環(huán)境變量中獲取訪問憑證。運行本代碼示例之前,請確保已設(shè)置環(huán)境變量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。*/
    auto credentialsProvider = std::make_shared<EnvironmentVariableCredentialsProvider>();
    OssClient client(Endpoint, credentialsProvider, conf);
    client.SetRegion(Region);

    /* 將圖片縮放為固定寬高100 px后轉(zhuǎn)存到當前Bucket。*/
    std::string Process = "image/resize,m_fixed,w_100,h_100";
    std::stringstream ss;
    ss  << Process 
    <<"|sys/saveas"
    << ",o_" << Base64EncodeUrlSafe(TargetObjectName)
    << ",b_" << Base64EncodeUrlSafe(BucketName);
    ProcessObjectRequest request(BucketName, SourceObjectName, ss.str());
    auto outcome = client.ProcessObject(request);
    if (outcome.isSuccess()) {
    std::cout << "Image processed successfully." << std::endl;
    } else {
    std::cout << "Failed to process image. Error code: " << outcome.error().Code()
              << ", Message: " << outcome.error().Message()
              << ", RequestId: " << outcome.error().RequestId() << std::endl;
    }

    /* 釋放網(wǎng)絡(luò)等資源。*/
    ShutdownSdk();
    return 0;
}

生成帶圖片處理參數(shù)的文件簽名URL

通過文件URL訪問私有權(quán)限文件時需要攜帶簽名。OSS不支持在帶簽名的URL后直接添加圖片處理參數(shù)。如果您需要對私有權(quán)限的圖片進行處理,您需要將圖片處理參數(shù)加入到簽名中,代碼示例如下:

#include <alibabacloud/oss/OssClient.h>
using namespace AlibabaCloud::OSS;

int main(void)
{
    /* 初始化OSS賬號信息。*/
            
    /* yourEndpoint填寫B(tài)ucket所在地域?qū)?yīng)的Endpoint。以華東1(杭州)為例,Endpoint填寫為https://oss-cn-hangzhou.aliyuncs.com。*/
    std::string Endpoint = "yourEndpoint";
    /* yourRegion填寫B(tài)ucket所在地域?qū)?yīng)的Region。以華東1(杭州)為例,Region填寫為cn-hangzhou。*/
    std::string Region = "yourRegion";
    /* 填寫圖片所在的Bucket名稱,例如examplebucket。*/
    std::string BucketName = "examplebucket";
    /* 指定圖片名稱。如果圖片不在Bucket根目錄,需攜帶文件完整路徑,例如exampledir/example.jpg。*/
    std::string ObjectName = "exampledir/example.jpg";

    /* 初始化網(wǎng)絡(luò)等資源。*/
    InitializeSdk();

    ClientConfiguration conf;
    conf.signatureVersion = SignatureVersionType::V4;
    /* 從環(huán)境變量中獲取訪問憑證。運行本代碼示例之前,請確保已設(shè)置環(huán)境變量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。*/
    auto credentialsProvider = std::make_shared<EnvironmentVariableCredentialsProvider>();
    OssClient client(Endpoint, credentialsProvider, conf);
    client.SetRegion(Region);


    /* 生成帶圖片處理參數(shù)的文件簽名URL。*/
    std::string Process = "image/resize,m_fixed,w_100,h_100";
    GeneratePresignedUrlRequest request(BucketName, ObjectName, Http::Get);
    request.setProcess(Process);
    /* 使用URL的最大時間限制為32400。*/
    auto outcome = client.GeneratePresignedUrl(request);
	
    if (outcome.isSuccess()) {
    std::cout << "Generated presigned URL: " << outcome.result() << std::endl;
    } else {
    std::cout << "Failed to generate presigned URL. Error code: " << outcome.error().Code()
              << ", Message: " << outcome.error().Message()
              << ", RequestId: " << outcome.error().RequestId() << std::endl;
    }
    
    /* 釋放網(wǎng)絡(luò)等資源。*/
    ShutdownSdk();
    return 0;
}

圖片處理工具

您可以通過可視化圖片處理工具ImageStyleViewer直觀地看到OSS圖片處理結(jié)果。

相關(guān)文檔

  • 關(guān)于圖片處理支持的參數(shù)說明,請參見處理參數(shù)。

  • 關(guān)于圖片處理的樣式說明,請參見圖片樣式。