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

Object Storage Service:IMG

最終更新日:Feb 26, 2024

Image Processing (IMG) は、大量のデータを処理するのに役立つObject Storage service (OSS) が提供する、安全で費用対効果の高い信頼性の高い画像処理サービスです。 ソース画像をOSSにアップロードした後、RESTful APIを呼び出して、いつでもどこでもインターネットに接続されているデバイスで画像を処理できます。

サポートされるIMGパラメーターの詳細については、「概要」をご参照ください。

使用上の注意

  • このトピックでは、中国 (杭州) リージョンのパブリックエンドポイントを使用します。 OSSと同じリージョンにある他のAlibaba CloudサービスからOSSにアクセスする場合は、内部エンドポイントを使用します。 OSSリージョンとエンドポイントの詳細については、「リージョンとエンドポイント」をご参照ください。

  • このトピックでは、OSSエンドポイントを使用してOSSClientインスタンスを作成します。 カスタムドメイン名またはSTS (Security Token Service) を使用してOSSClientインスタンスを作成する場合は、「初期化」をご参照ください。

IMGパラメータを使用した画像処理

  • 単一のIMGパラメータを使用して画像を処理し、処理した画像をローカルコンピュータに保存する

    # -*-コーディング: utf-8 -*-
    osのインポート
    oss2のインポート
    oss2.credentialsからEnvironmentVariableCredentialsProviderをインポート
    
    # 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。 
    auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())
    # バケットが配置されているリージョンのエンドポイントを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントをhttps://oss-cn-hangzhou.aliyuncs.comに設定します。 
    # バケットの名前を指定します。 
    bucket = oss2.Bucket(auth, 'https:// oss-cn-hangzhou.aliyuncs.com ', 'examplebucket')
    # 処理するイメージの名前を指定します。 イメージがバケットのルートディレクトリに保存されていない場合は、イメージのパスを指定する必要があります。 例: Example /example.jpg 
    key = 'yourObjectName'
    # 処理されたイメージの名前を指定します。 
    new_pic = 'LocalFileName'
    
    # 指定されたバケットに画像が存在しない場合は、画像をバケットにアップロードする必要があります。 
    # bucket.put_object_from_file (キー、'yourLocalFile ')
    
    # 画像のサイズを100 × 100ピクセルに変更し、サイズを変更した画像をローカルコンピューターに保存します。 
    style = 'image/resize,m_fixed,w_100,h_100'
    bucket.get_object_to_file(key, new_pic, process=style)
    
    # イメージが処理された後、イメージが不要になった場合は、バケットからソースイメージを削除できます。 
    # bucket.de lete_object (キー)
    # 処理済みイメージが不要になった場合は、処理済みイメージを削除できます。 
    # os.remove(new_pic) 
  • 複数のIMGパラメータを使用して画像を処理し、処理した画像をローカルコンピュータに保存する

    次のサンプルコードは、複数のIMGパラメーターを使用してイメージを処理する方法の例を示しています。 IMGパラメータはスラッシュ (/) で区切られます。

    # -*-コーディング: utf-8 -*-
    osのインポート
    oss2のインポート
    oss2.credentialsからEnvironmentVariableCredentialsProviderをインポート
    
    # 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。 
    auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())
    # バケットが配置されているリージョンのエンドポイントを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントをhttps://oss-cn-hangzhou.aliyuncs.comに設定します。 
    # バケットの名前を指定します。 
    bucket = oss2.Bucket(auth, 'https:// oss-cn-hangzhou.aliyuncs.com ', 'examplebucket')
    
    # ソースイメージが保存されているバケットの名前を指定します。 例: examplebucket. 
    bucket_name = 'examplebucket'
    # ソースイメージの名前を指定します。 イメージがバケットのルートディレクトリに保存されていない場合は、イメージのパスを指定する必要があります。 例: Example /example.jpg 
    key = 'exampledir/example.jpg'
    # 処理されたイメージの名前を指定します。 
    new_pic = 'exampledir/newexample.jpg'
    
    # 処理するイメージが指定されたバケットに存在しない場合は、バケットのローカルパスに保存されているイメージをアップロードする必要があります。 
    # bucket.put_object_from_file (キー、'D :\\ localpath\\example.jpg ')
    
    # 画像のサイズを100 × 100ピクセルに変更し、画像を90度回転させてから、処理した画像をローカルコンピューターに保存します。 
    style = 'image/resize,m_fixed,w_100,h_100/rotate,90'
    bucket.get_object_to_file(key, new_pic, process=style)
    # イメージが処理された後、イメージが不要になった場合は、バケットからソースイメージを削除できます。 
    # bucket.de lete_object (キー)
    # 処理済みの画像が不要になった場合は、画像を削除できます。 
    # os.remove(new_pic) 

画像スタイルを使用して画像を処理する

イメージスタイル内に複数のIMGパラメータをカプセル化し、イメージスタイルを使用してイメージを処理できます。 詳細については、「イメージスタイル」をご参照ください。 次のコードは、イメージスタイルを使用してイメージを処理する方法の例を示しています。

# -*-コーディング: utf-8 -*-
osのインポート
oss2のインポート
oss2.credentialsからEnvironmentVariableCredentialsProviderをインポート

# 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。 
auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())
# バケットが配置されているリージョンのエンドポイントを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントをhttps://oss-cn-hangzhou.aliyuncs.comに設定します。 
# バケットの名前を指定します。 
bucket = oss2.Bucket(auth, 'https:// oss-cn-hangzhou.aliyuncs.com ', 'examplebucket')
# ソースイメージが保存されているバケットの名前を指定します。 例: examplebucket. 
bucket_name = 'examplebucket'
# ソースイメージの名前を指定します。 イメージがバケットのルートディレクトリに保存されていない場合は、イメージのパスを指定する必要があります。 例: Example /example.jpg 
key = 'exampledir/example.jpg'
# 処理されたイメージの名前を指定します。 
new_pic = 'exampledir/newexample.jpg'

# 処理するイメージが指定されたバケットに存在しない場合は、バケットのローカルパスに保存されているイメージをアップロードする必要があります。 
# bucket.put_object_from_file (キー、'D :\\ localpath\\example.jpg ')

# カスタム画像スタイルを使用して画像を処理します。 yourCustomStyleNameをOSSコンソールで作成したイメージスタイルの名前に設定します。 
style = 'style/yourCustomStyleName'
# 処理した画像をローカルコンピューターに保存します。 
bucket.get_object_to_file(key, new_pic, process=style)
# イメージが処理された後、イメージが不要になった場合は、バケットからソースイメージを削除できます。 
# bucket.de lete_object (キー)
# 処理済みの画像が不要になった場合は、画像を削除できます。 
# os.remove(new_pic) 

処理された画像を保存する

ImgSaveAs操作を呼び出して、処理した画像を特定のバケットに保存できます。 次のサンプルコードは、処理されたイメージを保存する方法の例を示します。

# -*-コーディング: utf-8 -*-
osのインポート
インポートbase64
oss2のインポート
oss2.credentialsからEnvironmentVariableCredentialsProviderをインポート

# 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。 
auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())
# バケットが配置されているリージョンのエンドポイントを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントをhttps://oss-cn-hangzhou.aliyuncs.comに設定します。 
# バケットの名前を指定します。 
bucket = oss2.Bucket(auth, 'https:// oss-cn-hangzhou.aliyuncs.com ', 'examplebucket')
# ソースイメージが保存されているバケットの名前を指定します。 
source_bucket_name = 'srcbucket'
# 処理されたイメージを保存するバケットの名前を指定します。 バケットは、ソースイメージが保存されているバケットと同じリージョン内にある必要があります。 
target_bucket_name = 'destbucket'
# ソースイメージの名前を指定します。 イメージがバケットのルートディレクトリに保存されていない場合は、イメージのフルパスを指定する必要があります。 例: Example /example.jpg 
source_image_name = 'example/example.jpg'

# 画像のサイズを100 × 100ピクセルに変更します。 
style = 'image/resize,m_fixed,w_100,h_100'
# 処理されたイメージの名前を指定します。 イメージがバケットのルートディレクトリに保存されていない場合は、イメージのフルパスを指定する必要があります。 例: exampledir/example.jpg 
target_image_name = 'exampledir/example.jpg'
process = "{0}| sys/saveas,o_{1},b_{2}".format(style, 
    oss2.compat.to_string(base64.urlsafe_b64encode(oss2.compat.to_bytes(target_image_name))),
    oss2.compat.to_string (base64.urlsaf_b64encode (oss2.compat.to_bytes(target_bucket_name))))
result = bucket.process_object(source_image_name, process)
プリント (結果) 

IMGパラメータを含む署名付きオブジェクトURLを生成する

プライベートオブジェクトのURLに署名する必要があります。 署名付きURLの末尾にIMGパラメーターを追加することはできません。 プライベートイメージオブジェクトを処理する場合は、署名にIMGパラメータを追加します。 次のサンプルコードは、署名にIMGパラメーターを追加する方法の例を示しています。

# -*-コーディング: utf-8 -*-
oss2のインポート
oss2.credentialsからEnvironmentVariableCredentialsProviderをインポート

# 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。 
auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())
# バケットが配置されているリージョンのエンドポイントを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントをhttps://oss-cn-hangzhou.aliyuncs.comに設定します。 
# バケットの名前を指定します。 
bucket = oss2.Bucket(auth, 'https:// oss-cn-hangzhou.aliyuncs.com ', 'examplebucket')

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

# 画像が指定されたバケットに保存されていない場合は、画像をバケットにアップロードする必要があります。 
# bucket.put_object_from_file (キー、'D :\\ localpath\\example.jpg ')
# 画像のサイズを100 × 100ピクセルに変更し、画像を90度回転させます。 
style = 'image/resize,m_fixed,w_100,h_100/rotate,90'
# IMGパラメータを含む署名付きオブジェクトURLを生成します。 URLの有効期間を600に設定します。 単位は秒です。 
url = bucket.sign_url('GET', key, 10*60, params={'x-oss-process': style})
プリント (url) 

参考資料

IMGの使用方法に関する完全なサンプルコードについては、『GitHub』をご参照ください。