すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:カスタム切り抜き

最終更新日:Nov 09, 2025

カスタム切り抜きを使用すると、指定したディメンションにイメージのサイズを変更できます。

シナリオ

  • Web ページの設計と制作: Web インターフェイスを設計する際、アバター、バックグラウンドセクション、プロダクトギャラリーで使用するために、事前定義された縦横比またはディメンションに合わせてイメージをトリミングする必要があることがよくあります。

  • ソーシャルメディアのイメージ仕様: さまざまなソーシャルメディアプラットフォームでは、サムネイル、投稿可能なイメージ、ストーリーイメージなど、さまざまな種類のイメージに特定のサイズ要件が課せられます。最適な視覚的表現を確保するために、イメージを事前に推奨ディメンションにトリミングする必要があります。

  • モバイルアプリ開発: アプリアイコン、スプラッシュスクリーン、アプリ内グラフィックなどの視覚要素を、さまざまなモバイルデバイスや解像度に適応させるには、カスタム切り抜きが必要です。

  • イメージデータベース管理: 広範なイメージリポジトリを維持する図書館やアーカイブなどの組織では、カタログ作成およびアーカイブワークフロー中に、事前定義されたサイズにトリミングしてイメージのディメンションを標準化する必要があります。

注意事項

  • 処理されたイメージの指定された幅と高さは 16,384 ピクセルを超えることはできません。

  • 指定された開始座標がソースイメージの座標を超えている場合、BadRequest エラー: Advance cut's position is out of image が返されます。

  • 指定された幅と高さがソースイメージのディメンションを超えている場合、トリミング領域はソースイメージの境界に制約されます。

メソッド

オブジェクト URL、OSS SDK を使用するか、API 操作を呼び出して、イメージ処理 (IMG) パラメーターを設定できます。オブジェクト URL は、一般にアクセス可能なイメージ (公開読み取りまたは公開読み書き) でのみサポートされます。非公開イメージの場合は、OSS SDK を使用するか、API 操作を直接呼び出します。詳細については、「IMG 実装モード」をご参照ください。

公開読み取りまたは公開読み書きイメージのトリミング

処理するイメージのアクセス制御リスト (ACL) が公開読み取りまたは公開読み書きの場合、オブジェクトの URL に IMG パラメーターを追加して、匿名ユーザーが処理されたオブジェクトに永続的にアクセスできるようにすることができます。

この例では、?x-oss-process=image/crop,parame_value が公開読み取りイメージの URL に追加されます。パラメーターセクションで説明されている特定のパラメーターと値で parame_value を置き換えるだけです。該当する場合、URL に複数のパラメーターを含めることができます。

ソースイメージの URL

処理されたイメージへのアクセスに使用される URL

https://oss-console-img-demo-cn-hangzhou-3az.oss-cn-hangzhou.aliyuncs.com/example1.jpg

https://oss-console-img-demo-cn-hangzhou-3az.oss-cn-hangzhou.aliyuncs.com/example1.jpg?x-oss-process=image/crop,x_800,y_50

非公開イメージのトリミング

OSS SDK の使用

以下は、OSS SDK を使用して非公開イメージをトリミングするためのサンプルコードです。他のプログラミング言語を使用してこの操作を実行する方法については、「概要」をご参照ください。

Java

OSS SDK for Java 3.17.4 以降が必要です。

import com.aliyun.oss.*;
import com.aliyun.oss.common.auth.*;
import com.aliyun.oss.common.comm.SignVersion;
import com.aliyun.oss.model.GetObjectRequest;
import java.io.File;

public class Demo {
    public static void main(String[] args) throws Throwable {
        // リージョンのエンドポイントを指定します。この例では、中国 (杭州) リージョンのエンドポイントが使用されます。実際のエンドポイントを指定してください。
        String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
        // エンドポイントのリージョンを指定します。例: cn-hangzhou。
        String region = "cn-hangzhou";
        // 環境変数からアクセス資格情報を取得します。サンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
        EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
        // バケットの名前を指定します。例: examplebucket。
        String bucketName = "examplebucket";
        // ソースイメージの完全なパスを指定します。完全なパスにバケット名を含めないでください。
        String objectName = "example.jpg";
        // 処理されたイメージの完全なパスを指定します。例: D:\\dest.jpg。パスに同じ名前のイメージが既に存在する場合、処理されたイメージはそのイメージを上書きします。それ以外の場合、処理されたイメージはパスに保存されます。
        String pathName = "D:\\dest.jpg";

        // OSSClient インスタンスを作成します。
        ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
        clientBuilderConfiguration.setSignatureVersion(SignVersion.V4);
        OSS ossClient = OSSClientBuilder.create()
                .endpoint(endpoint)
                .credentialsProvider(credentialsProvider)
                .clientConfiguration(clientBuilderConfiguration)
                .region(region)
                .build();

        try {
            // イメージの右下隅にある 900 × 900 ピクセルの領域をトリミングします。
            String image = "image/crop,w_900,h_900,g_se";
            GetObjectRequest request = new GetObjectRequest(bucketName, objectName);
            request.setProcess(image);
            // 処理されたイメージをローカルコンピューターに保存します。
            // ローカルパスを指定せずに dest.jpg などの処理済みイメージの名前のみを指定した場合、処理済みイメージはサンプルプログラムが属するプロジェクトのローカルパスに保存されます。
            ossClient.getObject(request, new File("D:\\dest.jpg"));
        } catch (OSSException oe) {
            System.out.println("Caught an OSSException, which means your request made it to OSS, "
                    + "but was rejected with an error response for some reason.");
            System.out.println("Error Message:" + oe.getErrorMessage());
            System.out.println("Error Code:" + oe.getErrorCode());
            System.out.println("Request ID:" + oe.getRequestId());
            System.out.println("Host ID:" + oe.getHostId());
        } catch (ClientException ce) {
            System.out.println("Caught an ClientException, which means the client encountered "
                    + "a serious internal problem while trying to communicate with OSS, "
                    + "such as not being able to access the network.");
            System.out.println("Error Message:" + ce.getMessage());
        } finally {
            if (ossClient != null) {
                ossClient.shutdown();
            }
        }
    }
}

PHP

OSS SDK for PHP 2.7.0 以降が必要です。

<?php
if (is_file(__DIR__ . '/../autoload.php')) {
    require_once __DIR__ . '/../autoload.php';
}
if (is_file(__DIR__ . '/../vendor/autoload.php')) {
    require_once __DIR__ . '/../vendor/autoload.php';
}
use OSS\Credentials\EnvironmentVariableCredentialsProvider;
use OSS\OssClient;

// 環境変数からアクセス資格情報を取得します。サンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
$provider = new EnvironmentVariableCredentialsProvider();
// バケットが配置されているリージョンのエンドポイントを指定します。たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
$endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// バケットの名前を指定します。例: examplebucket。
$bucket= "examplebucket";
// ソースイメージの完全なパスを指定します。完全なパスにバケット名を含めないでください。
$object = "src.jpg";
// 処理されたイメージの完全なパスを指定します。例: D:\\dest.jpg。パスに同じ名前のイメージが既に存在する場合、処理されたイメージはそのイメージを上書きします。それ以外の場合、処理されたイメージはパスに保存されます。
// ローカルパスを指定せずに dest.jpg などの処理済みイメージの名前のみを指定した場合、処理済みイメージはサンプルプログラムが属するプロジェクトのローカルパスに保存されます。
$download_file = "D:\\dest.jpg";

$config = array(
        "provider" => $provider,
        "endpoint" => $endpoint,        
        "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4,
        // バケットが配置されている Alibaba Cloud リージョンの ID を指定します。
        "region" => "cn-hangzhou"
    );
$ossClient = new OssClient($config);

// イメージの右下隅にある 900 × 900 ピクセルの領域をトリミングします。
$image = "image/crop,w_900,h_900,g_se";

$options = array(
    OssClient::OSS_FILE_DOWNLOAD => $download_file,
    OssClient::OSS_PROCESS => $image);

// 処理されたイメージをローカルコンピューターに保存します。
$ossClient->getObject($bucket, $object, $options);                           

Python

OSS SDK for Python 2.18.4 以降が必要です。

# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider

# 環境変数からアクセス資格情報を取得します。サンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())

# バケットが配置されているリージョンのエンドポイントを指定します。たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
endpoint = 'https://oss-cn-hangzhou.aliyuncs.com'
# バケットが配置されている Alibaba Cloud リージョンの ID を指定します。
region = 'cn-hangzhou'
bucket = oss2.Bucket(auth, endpoint, 'examplebucket', region=region)

# ソースイメージがバケットのルートディレクトリに保存されている場合は、イメージ名のみを指定できます。例: source-example.jpg。ソースイメージがバケットのルートディレクトリに保存されていない場合は、ソースイメージの完全なパスを指定する必要があります。例: exampledir/source-example.jpg。
key = 'source-example.jpg'

# 処理されたイメージの完全なパスを指定します。例: D:\\target-example.jpg。パスに同じ名前のイメージが既に存在する場合、処理されたイメージはそのイメージを上書きします。それ以外の場合、処理されたイメージはパスに保存されます。
local_file_name = 'D:\\target-example.jpg'

# トリミングパラメーターを設定して、イメージの右下隅にある 900 × 900 ピクセルの領域をトリミングします。
process = 'image/crop,w_900,h_900,g_se'

# get_object メソッドを使用し、process パラメーターを使用して処理命令を渡します。
result = bucket.get_object_to_file(key, local_file_name, process=process)

Go

OSS SDK for Go 3.0.2 以降が必要です。

package main

import (
	"fmt"
	"os"

	"github.com/aliyun/aliyun-oss-go-sdk/oss"
)

func HandleError(err error) {
	fmt.Println("Error:", err)
	os.Exit(-1)
}

func main() {
	// 環境変数からアクセス資格情報を取得します。サンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}

	// OSSClient インスタンスを作成します。
	// バケットが配置されているリージョンのエンドポイントを指定します。たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。実際のエンドポイントを指定してください。
	client, err := oss.New("https://oss-cn-hangzhou.aliyuncs.com", "", "", oss.SetCredentialsProvider(&provider), oss.AuthVersion(oss.AuthV4), oss.Region("cn-hangzhou"))
	if err != nil {
		HandleError(err)
	}

	// ソースイメージが保存されているバケットの名前を指定します。例: examplebucket。
	bucketName := "examplebucket"
	bucket, err := client.Bucket(bucketName)
	if err != nil {
		HandleError(err)
	}

	// ソースイメージの名前を指定します。ソースイメージがバケットのルートディレクトリに保存されていない場合は、ソースイメージの完全なパスを指定する必要があります。例: exampledir/example.jpg。
	sourceImageName := "example.jpg"
	// 処理されたイメージの名前を指定します。
	targetImageName := "D://dest.jpg"
	// イメージの右下隅にある 900 × 900 ピクセルの領域をトリミングします。
	image := "image/crop,w_900,h_900,g_se"
	err = bucket.GetObjectToFile(sourceImageName, targetImageName, oss.Process(image))
	if err != nil {
		HandleError(err)
	}
}

OSS API の使用

より高いレベルのプログラムによるカスタマイズを必要とするアプリケーションの場合、RESTful API リクエストを直接開始できます。API を直接呼び出すには、コードに署名計算を含める必要があります。Authorization ヘッダーの計算方法については、「(推奨) V4 署名を含める」をご参照ください。

GetObject 操作でトリミングパラメーターを指定して、イメージを必要な正確なサイズにトリミングできます。詳細については、「GetObject」をご参照ください。

GET /oss.jpg?x-oss-process=image/crop,w_900,h_900,g_se HTTP/1.1
Host: oss-example.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: SignatureValue

パラメーター

アクション: トリミング

次の表に、イメージのトリミングで設定可能なパラメーターの概要を示します。

パラメーター

説明

有効値

w

トリミングする領域の幅。

[0, イメージの幅]

デフォルト値: 最大値。

h

トリミングする領域の高さ。

[0, イメージの高さ]

デフォルト値: 最大値。

x

トリミングする領域の X 座標。デフォルト値は、イメージの左上隅の X 座標です。

[0, イメージの幅]

y

トリミングする領域の Y 座標。デフォルト値は、イメージの左上隅の Y 座標です。

[0, イメージの高さ]

g

3×3 グリッドレイアウト内のトリミング領域の位置。イメージは 9 つのタイルからなる 3×3 グリッドに分割され、トリミング領域はこれらのセクションのいずれかに配置されます

  • nw: 左上

  • north: 上中

  • ne: 右上

  • west: 左中

  • center: 中央

  • east: 右中

  • sw: 左下

  • south: 下中

  • se: 右下

各タイルの位置の計算方法については、次の表をご参照ください。

次の表は、3×3 グリッドレイアウト内のタイル位置の計算方法を示しています。このコンテキストでは、srcW はソースイメージの幅を示し、srcH はその高さを示します。

タイル

計算方法

nw

0, 0

north

srcW/2 - w/2, 0

ne

srcW - w, 0

west

0, srcH/2 - h/2

center

srcW/2 - w/2, srcH/2 - h/2

east

srcW - w, srcH/2 - h/2

sw

0, srcH - h

south

srcW/2 - w/2, srcH - h

se

srcW - w, srcH - h

特定の開始点からトリミング

開始点 (800, 50) から境界までイメージをトリミングします:

  • アクションを指定します: crop

  • 開始点 (800, 500) を指定します: x_800,y_500

  • 境界までトリミング: w と h の値の最大値がデフォルトでトリミングに使用されます。したがって、w と h パラメーターの指定はオプションです。

公開読み取りまたは公開読み書きイメージをトリミングするには、イメージ URL に ?x-oss-process=image/crop,x_800,y_500 を追加します。OSS はリクエストに応じてトリミング操作を動的に適用し、処理されたイメージを返します。非公開イメージのトリミング方法については、「非公開イメージのトリミング」をご参照ください。

デモ

次の例では、ソースイメージの URL に ?x-oss-process=image/crop,x_800,y_500 を追加して、開始点 (800, 50) から境界までソースイメージをトリミングする方法について説明します:

ソースイメージ

処理されたイメージ

image

image

ソースイメージの URL: https://oss-console-img-demo-cn-hangzhou-3az.oss-cn-hangzhou.aliyuncs.com/example1.jpg

処理されたイメージへのアクセスに使用される URL: https://oss-console-img-demo-cn-hangzhou-3az.oss-cn-hangzhou.aliyuncs.com/example1.jpg?x-oss-process=image/crop,x_800,y_500

特定の開始点から指定された幅と高さに基づいて領域をトリミング

開始点 (800, 500) から 300 × 300 ピクセルの領域をトリミングします:

  • アクションを指定します: crop

  • 開始点 (800, 500) を指定します: x_800,y_500

  • 300 × 300 ピクセルの領域をトリミングします: w_300,h_300

公開読み取りまたは公開読み書きイメージをトリミングするには、イメージ URL に ?x-oss-process=image/crop,x_800,y_500,w_300,h_300 を追加します。OSS はリクエストに応じてトリミング操作を動的に適用し、処理されたイメージを返します。非公開イメージのトリミング方法については、「非公開イメージのトリミング」をご参照ください。

サンプル効果

次の表は、ソースイメージの URL に ?x-oss-process=image/crop,x_800,y_500,w_300,h_300 を追加して、指定された開始点 (800, 500) から 300 × 300 ピクセルの領域を抽出する効果を示しています:

ソースイメージ

処理されたイメージ

image

image

ソースイメージの URL: https://oss-console-img-demo-cn-hangzhou-3az.oss-cn-hangzhou.aliyuncs.com/example1.jpg

処理されたイメージへのアクセスに使用される URL: https://oss-console-img-demo-cn-hangzhou-3az.oss-cn-hangzhou.aliyuncs.com/example1.jpg?x-oss-process=image/crop,x_800,y_500,w_300,h_300

イメージの右下隅で指定された幅と高さに基づいて領域をトリミング

イメージの右下隅にある 900 × 900 ピクセルの領域をトリミングします

  • アクションを指定します: crop

  • 右下隅の開始点を指定します: g_se

  • 900 × 900 ピクセルの領域をトリミングします: w_900,h_900

公開読み取りまたは公開読み書きイメージをトリミングするには、イメージ URL に ?x-oss-process=image/crop,g_se,w_900,h_900 を追加します。OSS はリクエストに応じてトリミング操作を動的に適用し、処理されたイメージを返します。非公開イメージのトリミング方法については、「非公開イメージのトリミング」をご参照ください。

サンプル効果

次の表は、ソースイメージの URL に ?x-oss-process=image/crop,g_se,w_900,h_900 を追加して、イメージの右下隅から 900 × 900 ピクセルの領域をトリミングする効果を示しています:

ソースイメージ

処理されたイメージ

image

image

ソースイメージの URL: https://oss-console-img-demo-cn-hangzhou-3az.oss-cn-hangzhou.aliyuncs.com/example1.jpg

処理されたイメージへのアクセスに使用される URL: https://oss-console-img-demo-cn-hangzhou-3az.oss-cn-hangzhou.aliyuncs.com/example1.jpg?x-oss-process=image/crop,g_se,w_900,h_900

イメージの右下隅で指定された幅と高さに基づいて領域をトリミングし、トリミングされた領域を拡大する

イメージの右下隅にある 900 × 900 ピクセルの領域をトリミングし、トリミングされた領域を (100,200) だけ下方に拡大します:

  • アクションを指定します: crop

  • イメージの右下隅の開始点を指定し、トリミングされた領域を (100,200) だけ下方に拡大します: g_se,x_100,y_200

  • 900 × 900 ピクセルの領域をトリミングします: w_900,h_900

公開読み取りまたは公開読み書きイメージをトリミングするには、イメージ URL に ?x-oss-process=image/crop,g_se,x_100,y_200,w_900,h_900 を追加します。OSS はリクエストに応じてトリミング操作を動的に適用し、処理されたイメージを返します。非公開イメージのトリミング方法については、「非公開イメージのトリミング」をご参照ください。

サンプル効果

次の表は、ソースイメージの URL に ?x-oss-process=image/crop,g_se,x_100,y_200,w_900,h_900 を追加して、イメージの右下隅にある 900 × 900 ピクセルの領域をトリミングする効果を示しています:

ソースイメージ

処理されたイメージ

image

image

ソースイメージの URL: https://oss-console-img-demo-cn-hangzhou-3az.oss-cn-hangzhou.aliyuncs.com/example1.jpg

処理されたイメージへのアクセスに使用される URL: https://oss-console-img-demo-cn-hangzhou-3az.oss-cn-hangzhou.aliyuncs.com/example1.jpg?x-oss-process=image/crop,g_se,x_100,y_200,w_900,h_900

スマートクロッピングを使用してイメージをトリミング

スマートクロッピングを使用してイメージをトリミングするには、次のパラメーターを設定します:

  • アクションを指定します: crop

  • アルゴリズムを指定します: g_auto

OSS SDK でイメージを処理する前に、ターゲットバケットが Intelligent Media Management (IMM) プロジェクトに関連付けられていることを確認してください。

サンプルコード

Java

OSS SDK for Java 3.17.4 以降が必要です。

import com.aliyun.oss.*;
import com.aliyun.oss.common.auth.*;
import com.aliyun.oss.common.comm.SignVersion;
import com.aliyun.oss.model.GetObjectRequest;
import java.io.File;

public class Demo {
    public static void main(String[] args) throws Throwable {
        // リージョンのエンドポイントを指定します。この例では、中国 (杭州) リージョンのエンドポイントが使用されます。実際のエンドポイントを指定してください。
        String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
        // エンドポイントのリージョンを指定します。例: cn-hangzhou。
        String region = "cn-hangzhou";
        // 環境変数からアクセス資格情報を取得します。サンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
        EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
        // バケットの名前を指定します。例: examplebucket。
        String bucketName = "examplebucket";
        // ソースイメージの完全なパスを指定します。完全なパスにバケット名を含めないでください。
        String objectName = "example.jpg";
        // 処理されたイメージの完全なパスを指定します。例: D:\\dest.jpg。パスに同じ名前のイメージが既に存在する場合、処理されたイメージはそのイメージを上書きします。それ以外の場合、処理されたイメージはパスに保存されます。
        String pathName = "D:\\dest.jpg";

        // OSSClient インスタンスを作成します。
        ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
        clientBuilderConfiguration.setSignatureVersion(SignVersion.V4);
        OSS ossClient = OSSClientBuilder.create()
                .endpoint(endpoint)
                .credentialsProvider(credentialsProvider)
                .clientConfiguration(clientBuilderConfiguration)
                .region(region)
                .build();

        try {
            // スマートクロッピングを実行します。
            String image = "image/crop,g_auto";
            GetObjectRequest request = new GetObjectRequest(bucketName, objectName);
            request.setProcess(image);
            // 処理されたイメージをローカルコンピューターに保存します。
            // ローカルパスを指定せずに dest.jpg などの処理済みイメージの名前のみを指定した場合、処理済みイメージはサンプルプログラムが属するプロジェクトのローカルパスに保存されます。
            ossClient.getObject(request, new File("D:\\dest.jpg"));
        } catch (OSSException oe) {
            System.out.println("Caught an OSSException, which means your request made it to OSS, "
                    + "but was rejected with an error response for some reason.");
            System.out.println("Error Message:" + oe.getErrorMessage());
            System.out.println("Error Code:" + oe.getErrorCode());
            System.out.println("Request ID:" + oe.getRequestId());
            System.out.println("Host ID:" + oe.getHostId());
        } catch (ClientException ce) {
            System.out.println("Caught an ClientException, which means the client encountered "
                    + "a serious internal problem while trying to communicate with OSS, "
                    + "such as not being able to access the network.");
            System.out.println("Error Message:" + ce.getMessage());
        } finally {
            if (ossClient != null) {
                ossClient.shutdown();
            }
        }
    }
}

PHP

OSS SDK for PHP 2.7.0 以降が必要です。

<?php
if (is_file(__DIR__ . '/../autoload.php')) {
    require_once __DIR__ . '/../autoload.php';
}
if (is_file(__DIR__ . '/../vendor/autoload.php')) {
    require_once __DIR__ . '/../vendor/autoload.php';
}
use OSS\Credentials\EnvironmentVariableCredentialsProvider;
use OSS\OssClient;

// 環境変数からアクセス資格情報を取得します。サンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
$provider = new EnvironmentVariableCredentialsProvider();
// バケットが配置されているリージョンのエンドポイントを指定します。たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
$endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// バケットの名前を指定します。例: examplebucket。
$bucket= "examplebucket";
// ソースイメージの完全なパスを指定します。完全なパスにバケット名を含めないでください。
$object = "src.jpg";
// 処理されたイメージの完全なパスを指定します。例: D:\\dest.jpg。パスに同じ名前のイメージが既に存在する場合、処理されたイメージはそのイメージを上書きします。それ以外の場合、処理されたイメージはパスに保存されます。
// ローカルパスを指定せずに dest.jpg などの処理済みイメージの名前のみを指定した場合、処理済みイメージはサンプルプログラムが属するプロジェクトのローカルパスに保存されます。
$download_file = "D:\\dest.jpg";

$config = array(
        "provider" => $provider,
        "endpoint" => $endpoint,        
        "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4,
        // バケットが配置されている Alibaba Cloud リージョンの ID を指定します。
        "region" => "cn-hangzhou"
    );
$ossClient = new OssClient($config);

// スマートクロッピングを実行します。
$image = "image/crop,g_auto";

$options = array(
    OssClient::OSS_FILE_DOWNLOAD => $download_file,
    OssClient::OSS_PROCESS => $image);

// 処理されたイメージをローカルコンピューターに保存します。
$ossClient->getObject($bucket, $object, $options);                           

Python

OSS SDK for Python 2.18.4 以降が必要です。

# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider

# 環境変数からアクセス資格情報を取得します。サンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())

# バケットが配置されているリージョンのエンドポイントを指定します。たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
endpoint = 'https://oss-cn-hangzhou.aliyuncs.com'
# バケットが配置されている Alibaba Cloud リージョンの ID を指定します。
region = 'cn-hangzhou'
bucket = oss2.Bucket(auth, endpoint, 'examplebucket', region=region)

# ソースイメージがバケットのルートディレクトリに保存されている場合は、イメージ名のみを指定できます。例: source-example.jpg。ソースイメージがバケットのルートディレクトリに保存されていない場合は、ソースイメージの完全なパスを指定する必要があります。例: exampledir/source-example.jpg。
key = 'source-example.jpg'

# 処理されたイメージの完全なパスを指定します。例: D:\\target-example.jpg。パスに同じ名前のイメージが既に存在する場合、処理されたイメージはそのイメージを上書きします。それ以外の場合、処理されたイメージはパスに保存されます。
local_file_name = 'D:\\target-example.jpg'

# スマートクロッピングを実行します。
process = 'image/crop,g_auto'

# get_object メソッドを使用し、process パラメーターを使用して処理命令を渡します。
result = bucket.get_object_to_file(key, local_file_name, process=process)

Go

OSS SDK for Go 3.0.2 以降が必要です。

package main

import (
	"fmt"
	"os"

	"github.com/aliyun/aliyun-oss-go-sdk/oss"
)

func HandleError(err error) {
	fmt.Println("Error:", err)
	os.Exit(-1)
}

func main() {
	// 環境変数からアクセス資格情報を取得します。サンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}

	// OSSClient インスタンスを作成します。
	// バケットが配置されているリージョンのエンドポイントを指定します。たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。実際のエンドポイントを指定してください。
	client, err := oss.New("https://oss-cn-hangzhou.aliyuncs.com", "", "", oss.SetCredentialsProvider(&provider), oss.AuthVersion(oss.AuthV4), oss.Region("cn-hangzhou"))
	if err != nil {
		HandleError(err)
	}

	// ソースイメージが保存されているバケットの名前を指定します。例: examplebucket。
	bucketName := "examplebucket"
	bucket, err := client.Bucket(bucketName)
	if err != nil {
		HandleError(err)
	}

	// ソースイメージの名前を指定します。ソースイメージがバケットのルートディレクトリに保存されていない場合は、ソースイメージの完全なパスを指定する必要があります。例: exampledir/example.jpg。
	sourceImageName := "example.jpg"
	// 処理されたイメージの名前を指定します。
	targetImageName := "D://dest.jpg"
	// スマートクロッピングを実行します。
	image := "image/crop,g_auto"
	err = bucket.GetObjectToFile(sourceImageName, targetImageName, oss.Process(image))
	if err != nil {
		HandleError(err)
	}
}

サンプル効果

次の表は、image/crop,g_auto パラメーターとインテリジェントアルゴリズムを適用してイメージをトリミングする効果を示しています:

ソースイメージ

処理されたイメージ

原图

image

イメージ内で検出された最大の顔を中心に固定ディメンションのトリミングを実行

イメージ内で検出された最大の顔を中心に 200 × 200 ピクセルの領域をトリミングします:

  • アクションを指定します: crop

  • イメージ内で検出された最大の顔を中心に領域をトリミングします: g_face

  • 200 × 200 ピクセルの領域をトリミングします: w_200,h_200

OSS SDK でイメージを処理する前に、ターゲットバケットが IMM プロジェクトに関連付けられていることを確認してください。

サンプルコード

Java

OSS SDK for Java 3.17.4 以降が必要です。

import com.aliyun.oss.*;
import com.aliyun.oss.common.auth.*;
import com.aliyun.oss.common.comm.SignVersion;
import com.aliyun.oss.model.GetObjectRequest;
import java.io.File;

public class Demo {
    public static void main(String[] args) throws Throwable {
        // リージョンのエンドポイントを指定します。この例では、中国 (杭州) リージョンのエンドポイントが使用されます。実際のエンドポイントを指定してください。
        String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
        // エンドポイントのリージョンを指定します。例: cn-hangzhou。
        String region = "cn-hangzhou";
        // 環境変数からアクセス資格情報を取得します。サンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
        EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
        // バケットの名前を指定します。例: examplebucket。
        String bucketName = "examplebucket";
        // ソースイメージの完全なパスを指定します。完全なパスにバケット名を含めないでください。
        String objectName = "example.jpg";
        // 処理されたイメージの完全なパスを指定します。例: D:\\dest.jpg。パスに同じ名前のイメージが既に存在する場合、処理されたイメージはそのイメージを上書きします。それ以外の場合、処理されたイメージはパスに保存されます。
        String pathName = "D:\\dest.jpg";

        // OSSClient インスタンスを作成します。
        ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
        clientBuilderConfiguration.setSignatureVersion(SignVersion.V4);
        OSS ossClient = OSSClientBuilder.create()
                .endpoint(endpoint)
                .credentialsProvider(credentialsProvider)
                .clientConfiguration(clientBuilderConfiguration)
                .region(region)
                .build();

        try {
            // イメージ内の最大の顔の中心から 200 × 200 ピクセルの領域をトリミングします。
            String image = "image/crop,g_face,w_200,h_200";
            GetObjectRequest request = new GetObjectRequest(bucketName, objectName);
            request.setProcess(image);
            // 処理されたイメージをローカルコンピューターに保存します。
            // ローカルパスを指定せずに dest.jpg などの処理済みイメージの名前のみを指定した場合、処理済みイメージはサンプルプログラムが属するプロジェクトのローカルパスに保存されます。
            ossClient.getObject(request, new File("D:\\dest.jpg"));
        } catch (OSSException oe) {
            System.out.println("Caught an OSSException, which means your request made it to OSS, "
                    + "but was rejected with an error response for some reason.");
            System.out.println("Error Message:" + oe.getErrorMessage());
            System.out.println("Error Code:" + oe.getErrorCode());
            System.out.println("Request ID:" + oe.getRequestId());
            System.out.println("Host ID:" + oe.getHostId());
        } catch (ClientException ce) {
            System.out.println("Caught an ClientException, which means the client encountered "
                    + "a serious internal problem while trying to communicate with OSS, "
                    + "such as not being able to access the network.");
            System.out.println("Error Message:" + ce.getMessage());
        } finally {
            if (ossClient != null) {
                ossClient.shutdown();
            }
        }
    }
}

PHP

OSS SDK for PHP 2.7.0 以降が必要です。

<?php
if (is_file(__DIR__ . '/../autoload.php')) {
    require_once __DIR__ . '/../autoload.php';
}
if (is_file(__DIR__ . '/../vendor/autoload.php')) {
    require_once __DIR__ . '/../vendor/autoload.php';
}
use OSS\Credentials\EnvironmentVariableCredentialsProvider;
use OSS\OssClient;

// 環境変数からアクセス資格情報を取得します。サンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
$provider = new EnvironmentVariableCredentialsProvider();
// バケットが配置されているリージョンのエンドポイントを指定します。たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
$endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// バケットの名前を指定します。例: examplebucket。
$bucket= "examplebucket";
// ソースイメージの完全なパスを指定します。完全なパスにバケット名を含めないでください。
$object = "src.jpg";
// 処理されたイメージの完全なパスを指定します。例: D:\\dest.jpg。パスに同じ名前のイメージが既に存在する場合、処理されたイメージはそのイメージを上書きします。それ以外の場合、処理されたイメージはパスに保存されます。
// ローカルパスを指定せずに dest.jpg などの処理済みイメージの名前のみを指定した場合、処理済みイメージはサンプルプログラムが属するプロジェクトのローカルパスに保存されます。
$download_file = "D:\\dest.jpg";

$config = array(
        "provider" => $provider,
        "endpoint" => $endpoint,        
        "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4,
        // バケットが配置されている Alibaba Cloud リージョンの ID を指定します。
        "region" => "cn-hangzhou"
    );
$ossClient = new OssClient($config);

// イメージ内の最大の顔の中心から 200 × 200 ピクセルの領域をトリミングします。
$image = "image/crop,g_face,w_200,h_200";

$options = array(
    OssClient::OSS_FILE_DOWNLOAD => $download_file,
    OssClient::OSS_PROCESS => $image);

// 処理されたイメージをローカルコンピューターに保存します。
$ossClient->getObject($bucket, $object, $options);                           

Python

OSS SDK for Python 2.18.4 以降が必要です。

# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider

# 環境変数からアクセス資格情報を取得します。サンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())

# バケットが配置されているリージョンのエンドポイントを指定します。たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
endpoint = 'https://oss-cn-hangzhou.aliyuncs.com'
# バケットが配置されている Alibaba Cloud リージョンの ID を指定します。
region = 'cn-hangzhou'
bucket = oss2.Bucket(auth, endpoint, 'examplebucket', region=region)

# ソースイメージがバケットのルートディレクトリに保存されている場合は、イメージ名のみを指定できます。例: source-example.jpg。ソースイメージがバケットのルートディレクトリに保存されていない場合は、ソースイメージの完全なパスを指定する必要があります。例: exampledir/source-example.jpg。
key = 'source-example.jpg'

# 処理されたイメージの完全なパスを指定します。例: D:\\target-example.jpg。パスに同じ名前のイメージが既に存在する場合、処理されたイメージはそのイメージを上書きします。それ以外の場合、処理されたイメージはパスに保存されます。
local_file_name = 'D:\\target-example.jpg'

# イメージ内の最大の顔の中心から 200 × 200 ピクセルの領域をトリミングします。
process = 'image/crop,g_face,w_200,h_200'

# get_object メソッドを使用し、process パラメーターを使用して処理命令を渡します。
result = bucket.get_object_to_file(key, local_file_name, process=process)

Go

OSS SDK for Go 3.0.2 以降が必要です。

package main

import (
	"fmt"
	"os"

	"github.com/aliyun/aliyun-oss-go-sdk/oss"
)

func HandleError(err error) {
	fmt.Println("Error:", err)
	os.Exit(-1)
}

func main() {
	// 環境変数からアクセス資格情報を取得します。サンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}

	// OSSClient インスタンスを作成します。
	// バケットが配置されているリージョンのエンドポイントを指定します。たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。実際のエンドポイントを指定してください。
	client, err := oss.New("https://oss-cn-hangzhou.aliyuncs.com", "", "", oss.SetCredentialsProvider(&provider), oss.AuthVersion(oss.AuthV4), oss.Region("cn-hangzhou"))
	if err != nil {
		HandleError(err)
	}

	// ソースイメージが保存されているバケットの名前を指定します。例: examplebucket。
	bucketName := "examplebucket"
	bucket, err := client.Bucket(bucketName)
	if err != nil {
		HandleError(err)
	}

	// ソースイメージの名前を指定します。ソースイメージがバケットのルートディレクトリに保存されていない場合は、ソースイメージの完全なパスを指定する必要があります。例: exampledir/example.jpg。
	sourceImageName := "example.jpg"
	// 処理されたイメージの名前を指定します。
	targetImageName := "D://dest.jpg"
	// イメージ内の最大の顔の中心から 200 × 200 ピクセルの領域をトリミングします。
	image := "image/crop,g_face,w_200,h_200"
	err = bucket.GetObjectToFile(sourceImageName, targetImageName, oss.Process(image))
	if err != nil {
		HandleError(err)
	}
}

サンプル効果

次の例は、image/crop,g_face,w_200,h_200 を使用して、イメージ内で検出された最大の顔を中心に 200 × 200 ピクセルの領域をトリミングする効果を示しています:

ソースイメージ

処理されたイメージ

原图

image

イメージ内で検出された最大の顔を中心に領域をトリミングし、2 倍に拡大する

イメージ内で検出された最大の顔の周りにトリミング領域を定義し、最終的なトリミングの前にこの領域を 2 倍に拡大します:

  • アクションを指定します: crop

  • イメージ内で検出された最大の顔を中心に領域をトリミングします: g_face

  • トリミングされた領域を、検出された最大の顔の 2 倍のサイズに拡大します: p_200

OSS SDK でイメージを処理する前に、ターゲットバケットが IMM プロジェクトに関連付けられていることを確認してください。

サンプルコード

Java

OSS SDK for Java 3.17.4 以降が必要です。

import com.aliyun.oss.*;
import com.aliyun.oss.common.auth.*;
import com.aliyun.oss.common.comm.SignVersion;
import com.aliyun.oss.model.GetObjectRequest;
import java.io.File;

public class Demo {
    public static void main(String[] args) throws Throwable {
        // リージョンのエンドポイントを指定します。この例では、中国 (杭州) リージョンのエンドポイントが使用されます。実際のエンドポイントを指定してください。
        String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
        // エンドポイントのリージョンを指定します。例: cn-hangzhou。
        String region = "cn-hangzhou";
        // 環境変数からアクセス資格情報を取得します。サンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
        EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
        // バケットの名前を指定します。例: examplebucket。
        String bucketName = "examplebucket";
        // ソースイメージの完全なパスを指定します。完全なパスにバケット名を含めないでください。
        String objectName = "example.jpg";
        // 処理されたイメージの完全なパスを指定します。例: D:\\dest.jpg。パスに同じ名前のイメージが既に存在する場合、処理されたイメージはそのイメージを上書きします。それ以外の場合、処理されたイメージはパスに保存されます。
        String pathName = "D:\\dest.jpg";

        // OSSClient インスタンスを作成します。
        ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
        clientBuilderConfiguration.setSignatureVersion(SignVersion.V4);
        OSS ossClient = OSSClientBuilder.create()
                .endpoint(endpoint)
                .credentialsProvider(credentialsProvider)
                .clientConfiguration(clientBuilderConfiguration)
                .region(region)
                .build();

        try {
            // イメージ内の最大の顔の中心から 200 × 200 ピクセルの領域をトリミングします。
            String image = "image/crop,g_face,w_200,h_200";
            GetObjectRequest request = new GetObjectRequest(bucketName, objectName);
            request.setProcess(image);
            // 処理されたイメージをローカルコンピューターに保存します。
            // ローカルパスを指定せずに dest.jpg などの処理済みイメージの名前のみを指定した場合、処理済みイメージはサンプルプログラムが属するプロジェクトのローカルパスに保存されます。
            ossClient.getObject(request, new File("D:\\dest.jpg"));
        } catch (OSSException oe) {
            System.out.println("Caught an OSSException, which means your request made it to OSS, "
                    + "but was rejected with an error response for some reason.");
            System.out.println("Error Message:" + oe.getErrorMessage());
            System.out.println("Error Code:" + oe.getErrorCode());
            System.out.println("Request ID:" + oe.getRequestId());
            System.out.println("Host ID:" + oe.getHostId());
        } catch (ClientException ce) {
            System.out.println("Caught an ClientException, which means the client encountered "
                    + "a serious internal problem while trying to communicate with OSS, "
                    + "such as not being able to access the network.");
            System.out.println("Error Message:" + ce.getMessage());
        } finally {
            if (ossClient != null) {
                ossClient.shutdown();
            }
        }
    }
}

PHP

OSS SDK for PHP 2.7.0 以降が必要です。

<?php
if (is_file(__DIR__ . '/../autoload.php')) {
    require_once __DIR__ . '/../autoload.php';
}
if (is_file(__DIR__ . '/../vendor/autoload.php')) {
    require_once __DIR__ . '/../vendor/autoload.php';
}
use OSS\Credentials\EnvironmentVariableCredentialsProvider;
use OSS\OssClient;

// 環境変数からアクセス資格情報を取得します。サンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
$provider = new EnvironmentVariableCredentialsProvider();
// バケットが配置されているリージョンのエンドポイントを指定します。たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
$endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// バケットの名前を指定します。例: examplebucket。
$bucket= "examplebucket";
// ソースイメージの完全なパスを指定します。完全なパスにバケット名を含めないでください。
$object = "src.jpg";
// 処理されたイメージの完全なパスを指定します。例: D:\\dest.jpg。パスに同じ名前のイメージが既に存在する場合、処理されたイメージはそのイメージを上書きします。それ以外の場合、処理されたイメージはパスに保存されます。
// ローカルパスを指定せずに dest.jpg などの処理済みイメージの名前のみを指定した場合、処理済みイメージはサンプルプログラムが属するプロジェクトのローカルパスに保存されます。
$download_file = "D:\\dest.jpg";

$config = array(
        "provider" => $provider,
        "endpoint" => $endpoint,        
        "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4,
        // バケットが配置されている Alibaba Cloud リージョンの ID を指定します。
        "region" => "cn-hangzhou"
    );
$ossClient = new OssClient($config);

// イメージ内の最大の顔の中心から 200 × 200 ピクセルの領域をトリミングします。
$image = "image/crop,g_face,w_200,h_200";

$options = array(
    OssClient::OSS_FILE_DOWNLOAD => $download_file,
    OssClient::OSS_PROCESS => $image);

// 処理されたイメージをローカルコンピューターに保存します。
$ossClient->getObject($bucket, $object, $options);                           

Python

OSS SDK for Python 2.18.4 以降が必要です。

# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider

# 環境変数からアクセス資格情報を取得します。サンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())

# バケットが配置されているリージョンのエンドポイントを指定します。たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
endpoint = 'https://oss-cn-hangzhou.aliyuncs.com'
# バケットが配置されている Alibaba Cloud リージョンの ID を指定します。
region = 'cn-hangzhou'
bucket = oss2.Bucket(auth, endpoint, 'examplebucket', region=region)

# ソースイメージがバケットのルートディレクトリに保存されている場合は、イメージ名のみを指定できます。例: source-example.jpg。ソースイメージがバケットのルートディレクトリに保存されていない場合は、ソースイメージの完全なパスを指定する必要があります。例: exampledir/source-example.jpg。
key = 'source-example.jpg'

# 処理されたイメージの完全なパスを指定します。例: D:\\target-example.jpg。パスに同じ名前のイメージが既に存在する場合、処理されたイメージはそのイメージを上書きします。それ以外の場合、処理されたイメージはパスに保存されます。
local_file_name = 'D:\\target-example.jpg'

# イメージ内の最大の顔の中心から 200 × 200 ピクセルの領域をトリミングします。
process = 'image/crop,g_face,w_200,h_200'

# get_object メソッドを使用し、process パラメーターを使用して処理命令を渡します。
result = bucket.get_object_to_file(key, local_file_name, process=process)

Go

OSS SDK for Go 3.0.2 以降が必要です。

package main

import (
	"fmt"
	"os"

	"github.com/aliyun/aliyun-oss-go-sdk/oss"
)

func HandleError(err error) {
	fmt.Println("Error:", err)
	os.Exit(-1)
}

func main() {
	// 環境変数からアクセス資格情報を取得します。サンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}

	// OSSClient インスタンスを作成します。
	// バケットが配置されているリージョンのエンドポイントを指定します。たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。実際のエンドポイントを指定してください。
	client, err := oss.New("https://oss-cn-hangzhou.aliyuncs.com", "", "", oss.SetCredentialsProvider(&provider), oss.AuthVersion(oss.AuthV4), oss.Region("cn-hangzhou"))
	if err != nil {
		HandleError(err)
	}

	// ソースイメージが保存されているバケットの名前を指定します。例: examplebucket。
	bucketName := "examplebucket"
	bucket, err := client.Bucket(bucketName)
	if err != nil {
		HandleError(err)
	}

	// ソースイメージの名前を指定します。ソースイメージがバケットのルートディレクトリに保存されていない場合は、ソースイメージの完全なパスを指定する必要があります。例: exampledir/example.jpg。
	sourceImageName := "example.jpg"
	// 処理されたイメージの名前を指定します。
	targetImageName := "D://dest.jpg"
	// イメージ内の最大の顔の中心から 200 × 200 ピクセルの領域をトリミングします。
	image := "image/crop,g_face,w_200,h_200"
	err = bucket.GetObjectToFile(sourceImageName, targetImageName, oss.Process(image))
	if err != nil {
		HandleError(err)
	}
}

サンプル効果

次の例は、image/crop,g_face,p_200 パラメーターを使用して、イメージ内で検出された最大の顔を中心に領域をトリミングし、それを 2 倍に拡大する効果を示しています:

ソースイメージ

処理されたイメージ

原图

image