Image Processing (IMG) は、大規模で安全、低コストで、信頼性の高い画像処理サービスです。 ソース画像 が OSS にアップロードされると、簡易な RESTful API を通して、いつでも、どこからでも、どのインターネットデバイス上の画像でも処理できます。

IMG の詳細については、「Image Processing」をご参照ください。 画像処理の完全なコードについては、『GitHub』をご参照ください。

基本機能

OSS は以下の 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 の結果を直接表示できます。