Image Processing (IMG) は、大規模で安全、低コストで、信頼性の高い画像処理サービスです。 ソース画像 が OSS にアップロードされると、簡易な RESTful API を通して、いつでも、どこからでも、どのインターネットデバイス上の画像でも処理できます。
IMG の詳細については、「Image Processing」をご参照ください。 画像処理の完全なコードについては、『GitHub』をご参照ください。
基本機能
OSS は以下の IMG 機能を提供します。
- ドミナントイメージトーンの取得
- 画像フォーマット変換
- 画像サイズの変更
- 内接円の調整
- 画像の向きの調整
- 画像輝度
- 透かしの追加: 画像、テキスト、または画像テキストの透かしを別の画像に追加します。
- 画像処理
- 画像処理アクセスルール: 複数の IMG 関数を呼び出します。
使用方法
IMG"は標準の HTTP GET を使用します。 URL の QueryString に IMG パラメーターを設定します。
イメージオブジェクトの ACL が "非公開読み書き" の場合、承認されたユーザーだけがアクセスを許可されます。
- 匿名アクセス
処理済みイメージにアクセスするには、第 3 レベルドメインで次の形式を使用します。
http://<yourBucketName>.<yourEndpoint>/<yourObjectName>?x-oss-process=image/<yourAction>,<yourParamValue>
パラメーター 説明 bucket バケットの名前を指定します。 endpoint リージョンへのアクセスに使用されるエンドポイントを指定します。 object 画像オブジェクトの名前を指定します。 image IMG の予約済み識別子を指定します。 action 拡大縮小、トリミング、回転など、画像に対する操作を指定します。 param 画像に対する操作を示すパラメーターを指定します。 - 基本操作
たとえば、画像を 100 PX の幅に拡大縮小します。 比率に基づいて高さを調整します。
http://image-demo.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/resize,w_100
- カスタマイズされた画像スタイル
処理済みイメージにアクセスするには、第 3 レベルドメインで次の形式を使用します。
http://<yourBucketName>.<yourEndpoint>/<yourObjectName>?x-oss-process=style/<yourStyleName>
- style: カスタマイズされた画像スタイルの予約済み識別子を指定します。
- yourStyleName:カスタム画像スタイルの名前を指定します。 OSS コンソールで作成されたルールで指定された名前です。
例:
http://image-demo.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=style/oss-pic-style-w-100
- カスケード処理
カスケード処理では、画像に対して複数の操作を順番に実行します。
http://<yourBucketName>.<yourEndpoint>/<yourObjectName>?x-oss-process=image/<yourAction1>,<yourParamValue1>/<yourAction2>,<yourParamValue2>/...
例:
http://image-demo.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/resize,w_100/rotate,90
- HTTPS アクセス
IMG は HTTPS を介したアクセスをサポートしています。 例:
https://image-demo.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/resize,w_100
- 基本操作
- アクセス承認
アクセス承認により、画像スタイル、HTTPS アクセス、およびカスケード処理をカスタマイズできます。
次のコードを実行して IMG のサイン済み URL を生成します。
<? 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\OssClient; // It is highly risky to log on with AccessKey of an Alibaba Cloud account because the account has permissions on all the APIs in OSS. We recommend that you log on as a RAM user to access APIs or perform routine operations and maintenance. To create a RAM account, log on to https://ram.console.aliyun.com. $accessKeyId = "<yourAccessKeyId>"; $accessKeySecret = "<yourAccessKeySecret>"; // This example uses endpoint China East 1 (Hangzhou). Specify the actual endpoint based on your requirements. $endpoint = "http://oss-cn-hangzhou.aliyuncs.com"; $bucket= "<yourBucketName>"; $object = "<yourObjectName>"; $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint); // Generate a signed URL that is valid for 3600 seconds and can be directly accessed by browsers. $timeout = 3600; $options = array( OssClient::OSS_PROCESS => "image/resize,m_lfit,h_100,w_100" ); $signedUrl = $ossClient->signUrl($bucket, $object, $timeout, "GET", $options); print("rtmp url: \n" . $signedUrl);
- SDK を使用したアクセス
SDK を使用して、画像オブジェクトにアクセスして処理します。
SDK を使用すると、画像スタイル、HTTPS アクセス、およびカスケード処理をカスタマイズできます。
- 基本操作
次のコードを実行して、画像に対して基本操作を実行します。
<? 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\OssClient; // It is highly risky to log on with AccessKey of an Alibaba Cloud account because the account has permissions on all APIs in OSS. We recommend that you log on as a RAM user to access APIs or perform routine operations and maintenance. To create a RAM account, log on to https://ram.console.aliyun.com. $accessKeyId = "<yourAccessKeyId>"; $accessKeySecret = "<yourAccessKeySecret>"; // This example uses endpoint China East 1 (Hangzhou). Specify the actual endpoint based on your requirements. $endpoint = "http://oss-cn-hangzhou.aliyuncs.com"; $bucket = "<yourBucketName>"; $object = "<yourObjectName>"; $download_file = "download.jpg"; $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint); // Upload a sample image. $ossClient->uploadFile($bucket, $object, "example.jpg"); // Scale the image. $options = array( OssClient::OSS_FILE_DOWNLOAD => $download_file, OssClient::OSS_PROCESS => "image/resize,m_fixed,h_100,w_100" ); $ossClient->getObject($bucket, $object, $options); // Crop the image. $options = array( OssClient::OSS_FILE_DOWNLOAD => $download_file, OssClient::OSS_PROCESS => "image/crop,w_100,h_100,x_100,y_100,r_1" ); $ossClient->getObject($bucket, $object, $options); // Rotate the image. $options = array( OssClient::OSS_FILE_DOWNLOAD => $download_file, OssClient::OSS_PROCESS => "image/rotate,90" ); $ossClient->getObject($bucket, $object, $options); // Sharpen the image. $options = array( OssClient::OSS_FILE_DOWNLOAD => $download_file, OssClient::OSS_PROCESS => "image/sharpen,100" ); $ossClient->getObject($bucket, $object, $options); // Add watermarks. $options = array( OssClient::OSS_FILE_DOWNLOAD => $download_file, OssClient::OSS_PROCESS => "image/watermark,text_SGVsbG8g5Zu-54mH5pyN5YqhIQ" ); $ossClient->getObject($bucket, $object, $options); // Convert the image format. $options = array( OssClient::OSS_FILE_DOWNLOAD => $download_file, OssClient::OSS_PROCESS => "image/format,png" ); $ossClient->getObject($bucket, $object, $options); // Obtain image information. $options = array( OssClient::OSS_FILE_DOWNLOAD => $download_file, OssClient::OSS_PROCESS => "image/info" ); $ossClient->getObject($bucket, $object, $options); // Delete the sample image. $ossClient->deleteObject($bucket, $object);
- 画像スタイルのカスタマイズ
次のコードを実行して画像スタイルをカスタマイズします。
<? 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\OssClient; // It is highly risky to log on with AccessKey of an Alibaba Cloud account because the account has permissions on all APIs in OSS. We recommend that you log on as a RAM user to access APIs or perform routine operations and maintenance. To create a RAM account, log on to https://ram.console.aliyun.com. $accessKeyId = "<yourAccessKeyId>"; $accessKeySecret = "<yourAccessKeySecret>"; // This example uses endpoint China East 1 (Hangzhou). Specify the actual endpoint based on your requirements. $endpoint = "http://oss-cn-hangzhou.aliyuncs.com"; $bucket = "<yourBucketName>"; $object = "<yourObjectName>"; $download_file = "download.jpg"; $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint); // Upload a sample image. $ossClient->uploadFile($bucket, $object, "example.jpg"); // Customize an image style $style = "style/oss-pic-style-w-300"; $options = array( OssClient::OSS_FILE_DOWNLOAD => $download_file, OssClient::OSS_PROCESS => $style); $ossClient->getObject($bucket, $object, $options); // Delete the sample image. $ossClient->deleteObject($bucket, $object);
- カスケード処理
画像に対してカスケード処理を実行するには、次のコードを使用します。
<? 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\OssClient; // It is highly risky to log on with AccessKey of an Alibaba Cloud account because the account has permissions on all APIs in OSS. We recommend that you log on as a RAM user to access APIs or perform routine operations and maintenance. To create a RAM account, log on to https://ram.console.aliyun.com. $accessKeyId = "<yourAccessKeyId>"; $accessKeySecret = "<yourAccessKeySecret>"; // This example uses endpoint China East 1 (Hangzhou). Specify the actual endpoint based on your requirements. $endpoint = "http://oss-cn-hangzhou.aliyuncs.com"; $bucket = "<yourBucketName>"; $object = "<yourObjectName>"; $download_file = "download.jpg"; $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint, false); // Upload a sample image. $ossClient->uploadFile($bucket, $object, "example.jpg"); // Perform cascade operations. $style = "image/resize,m_fixed,w_100,h_100/rotate,90"; $options = array( OssClient::OSS_FILE_DOWNLOAD => $download_file, OssClient::OSS_PROCESS => $style); $ossClient->getObject($bucket, $object, $options); // Delete the sample image. $ossClient->deleteObject($bucket, $object);
- 基本操作
IMG ツール
IMG ビューアー (ImageStyleViever) を使用すると、IMG の結果を直接表示できます。