Görüntü İşleme (IMG), Object Storage Service (OSS) tarafından sunulan, büyük miktarda veriyi işlemenize yardımcı olan güvenli, maliyet etkin ve son derece güvenilir bir görüntü işleme hizmetidir. Kaynak görüntüleri OSS'ye yükledikten sonra, internete bağlı herhangi bir cihazdan RESTful API işlemlerini çağırarak görüntüleri istediğiniz zaman ve yerde işleyebilirsiniz.
Desteklenen IMG parametreleri hakkında daha fazla bilgi için bkz. Genel Bakış.
Kullanım notları
Bu konuda Çin (Hangzhou) bölgesinin genel uç noktası kullanılmıştır. OSS ile aynı bölgedeki diğer Alibaba Cloud hizmetlerinden OSS'ye erişmek için dahili uç nokta kullanın. OSS bölgeleri ve uç noktaları hakkında daha fazla bilgi için bkz. Bölgeler ve uç noktalar.
Bu konu, bir OSS uç noktası kullanarak bir OSSClient örneği oluşturmayı gösterir. Özel etki alanı kullanma veya Security Token Service (STS) kimlik bilgileriyle kimlik doğrulama gibi alternatif yapılandırmalar için bkz. Başlatma.
Görüntüleri işlemek için IMG parametrelerini kullanın
-
Tek bir IMG parametresi kullanarak bir görüntüyü işleyin ve işlenen görüntüyü yerel bilgisayarınıza kaydedin
# -*- coding: utf-8 -*- import os import oss2 from oss2.credentials import EnvironmentVariableCredentialsProvider # Obtain access credentials from environment variables. Before you run the sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are configured. auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider()) # Specify the endpoint of the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com. endpoint = "https://oss-cn-hangzhou.aliyuncs.com" # Specify the ID of the region that maps to the endpoint. Example: cn-hangzhou. This parameter is required if you use the signature algorithm V4. region = "cn-hangzhou" # Specify the name of the bucket. bucket = oss2.Bucket(auth, endpoint, "examplebucket", region=region) # Specify the name of the image that you want to process. If the image is not stored in the root directory of the bucket, you must specify the path of the image. Example: example/example.jpg. key = 'yourObjectName' # Specify the name of the processed image. new_pic = 'LocalFileName' # If the image does not exist in the specified bucket, you must upload the image to the bucket. # bucket.put_object_from_file(key, 'yourLocalFile') # Resize the image to 100 × 100 pixels and then save the resized image to your local computer. style = 'image/resize,m_fixed,w_100,h_100' bucket.get_object_to_file(key, new_pic, process=style) # After the image is processed, you can delete the source image from the bucket if you no longer need the image. # bucket.delete_object(key) # If you no longer need the processed image, you can delete the processed image. # os.remove(new_pic) -
Birden fazla IMG parametresi kullanarak bir görüntüyü işleyin ve işlenen görüntüyü yerel bilgisayarınıza kaydedin
Aşağıdaki örnek kod, bir görüntüyü işlemek için birden fazla IMG parametresinin nasıl kullanılacağını gösterir. IMG parametreleri eğik çizgi (/) ile ayrılır.
# -*- coding: utf-8 -*- import os import oss2 from oss2.credentials import EnvironmentVariableCredentialsProvider # Obtain access credentials from environment variables. Before you run the sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are configured. auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider()) # Specify the endpoint of the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com. endpoint = "https://oss-cn-hangzhou.aliyuncs.com" # Specify the ID of the region that maps to the endpoint. Example: cn-hangzhou. This parameter is required if you use the signature algorithm V4. region = "cn-hangzhou" # Specify the name of the bucket. bucket = oss2.Bucket(auth, endpoint, "examplebucket", region=region) # Specify the name of the bucket in which the source image is stored. Example: examplebucket. bucket_name = 'examplebucket' # Specify the name of the source image. If the image is not stored in the root directory of the bucket, you must specify the path of the image. Example: example/example.jpg. key = 'exampledir/example.jpg' # Specify the name of the processed image. new_pic = 'exampledir/newexample.jpg' # If the image that you want to process does not exist in the specified bucket, you must upload the image that is stored in the local path of the bucket. # bucket.put_object_from_file(key, 'D:\\localpath\\example.jpg') # Resize the image to 100 × 100 pixels, rotate the image 90 degrees, and then save the processed image to your local computer. style = 'image/resize,m_fixed,w_100,h_100/rotate,90' bucket.get_object_to_file(key, new_pic, process=style) # After the image is processed, you can delete the source image from the bucket if you no longer need the image. # bucket.delete_object(key) # If you no longer need the processed image, you can delete the image. # os.remove(new_pic)
Görüntüleri işlemek için görüntü stili kullanın
Birden fazla IMG parametresini bir görüntü stili içinde birleştirip görüntüyü işlemek için bu görüntü stilini kullanabilirsiniz. Daha fazla bilgi için bkz. Görüntü stilleri. Aşağıdaki kod, bir görüntüyü işlemek için görüntü stilinin nasıl kullanılacağına ilişkin bir örnek sunar:
# -*- coding: utf-8 -*-
import os
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# Obtain access credentials from environment variables. Before you run the sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are configured.
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# Specify the endpoint of the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com.
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# Specify the ID of the region that maps to the endpoint. Example: cn-hangzhou. This parameter is required if you use the signature algorithm V4.
region = "cn-hangzhou"
# Specify the name of the bucket.
bucket = oss2.Bucket(auth, endpoint, "examplebucket", region=region)
# Specify the name of the bucket in which the source image is stored. Example: examplebucket.
bucket_name = 'examplebucket'
# Specify the name of the source image. If the image is not stored in the root directory of the bucket, you must specify the path of the image. Example: example/example.jpg.
key = 'exampledir/example.jpg'
# Specify the name of the processed image.
new_pic = 'exampledir/newexample.jpg'
# If the image that you want to process does not exist in the specified bucket, you must upload the image that is stored in the local path of the bucket.
# bucket.put_object_from_file(key, 'D:\\localpath\\example.jpg')
# Use a custom image style to process the image. Set yourCustomStyleName to the name of the image style that you created in the OSS console.
style = 'style/yourCustomStyleName'
# Save the processed image to your local computer.
bucket.get_object_to_file(key, new_pic, process=style)
# After the image is processed, you can delete the source image from the bucket if you no longer need the image.
# bucket.delete_object(key)
# If you no longer need the processed image, you can delete the image.
# os.remove(new_pic)
İşlenen görüntüleri kaydedin
İşlenen görüntüleri belirli bir pakete kaydetmek için ImgSaveAs işlemini çağırabilirsiniz. Aşağıdaki örnek kod, işlenen bir görüntünün nasıl kaydedileceğini gösterir:
# -*- coding: utf-8 -*-
import os
import base64
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# Obtain access credentials from environment variables. Before you run the sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are configured.
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# Specify the endpoint of the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com.
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# Specify the ID of the region that maps to the endpoint. Example: cn-hangzhou. This parameter is required if you use the signature algorithm V4.
region = "cn-hangzhou"
# Specify the name of the bucket.
bucket = oss2.Bucket(auth, endpoint, "examplebucket", region=region)
# Specify the name of the bucket in which the source image is stored.
source_bucket_name = 'srcbucket'
# Specify the name of the bucket in which you want to save the processed image. The bucket must be within the same region as the bucket in which the source image is stored.
target_bucket_name = 'destbucket'
# Specify the name of the source image. If the image is not stored in the root directory of the bucket, you must specify the full path of the image. Example: example/example.jpg.
source_image_name = 'example/example.jpg'
# Resize the image to 100 × 100 pixels.
style = 'image/resize,m_fixed,w_100,h_100'
# Specify the name of the processed image. If the image is not stored in the root directory of the bucket, you must specify the full path of the image. Example: 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.urlsafe_b64encode(oss2.compat.to_bytes(target_bucket_name))))
result = bucket.process_object(source_image_name, process)
print(result)
IMG parametreleri içeren imzalı bir nesne URL'si oluşturun
Özel nesnelerin URL'leri imzalanmalıdır. İmzalı bir URL'nin sonuna IMG parametreleri eklenemez. Özel bir görüntü nesnesini işlemek istiyorsanız IMG parametrelerini imzaya ekleyin. Aşağıdaki örnek kod, bir imzaya IMG parametrelerinin nasıl ekleneceğini gösterir:
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# Obtain access credentials from environment variables. Before you run the sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are configured.
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# Specify the endpoint of the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com.
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# Specify the ID of the region that maps to the endpoint. Example: cn-hangzhou. This parameter is required if you use the signature algorithm V4.
region = "cn-hangzhou"
# Specify the name of the bucket.
bucket = oss2.Bucket(auth, endpoint, "examplebucket", region=region)
# Specify the name of the bucket. Example: examplebucket.
bucket_name = 'examplebucket'
# Specify the name of the bucket in which the image is stored. If the image is not stored in the root directory of the bucket, you must specify the full path of the image. Example: exampledir/example.jpg.
key = 'exampledir/example.jpg'
# If the image is not stored in the specified bucket, you must upload the image to the bucket.
# bucket.put_object_from_file(key, 'D:\\localpath\\example.jpg')
# Resize the image to 100 × 100 pixels and rotate the image 90 degrees.
style = 'image/resize,m_fixed,w_100,h_100/rotate,90'
# Generate a signed object URL that includes IMG parameters. Set the validity period of the URL to 600. Unit: seconds.
url = bucket.sign_url('GET', key, 10 * 60, params={'x-oss-process': style})
print(url)
İlgili konular
IMG kullanımına ilişkin tam örnek kod için GitHub adresini ziyaret edin.