Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Gunakan Python untuk antara muka dengan Tencent Cloud untuk melaksanakan fungsi pemprosesan imej

Gunakan Python untuk antara muka dengan Tencent Cloud untuk melaksanakan fungsi pemprosesan imej

WBOY
WBOYasal
2023-07-06 21:00:08833semak imbas

Gunakan Python untuk antara muka dengan Tencent Cloud untuk melaksanakan fungsi pemprosesan imej

Dengan perkembangan pesat Internet, aplikasi imej menjadi semakin meluas. Permintaan untuk pemprosesan imej juga semakin meningkat. Tencent Cloud menyediakan pelbagai fungsi pemprosesan imej, yang boleh mengenal pasti, memangkas, mengezum, memampatkan dan imej lain. Artikel ini akan memperkenalkan cara menggunakan Python untuk antara muka dengan Tencent Cloud untuk melaksanakan fungsi pemprosesan imej.

Pertama, kita perlu menyediakan persekitaran pembangunan Python dan memasang perpustakaan bergantung yang berkaitan. Dalam artikel ini, kami akan menggunakan perpustakaan permintaan untuk permintaan antara muka dan perpustakaan PIL untuk pemprosesan imej. Ia boleh dipasang menggunakan arahan pip:

pip install requests
pip install pillow

Seterusnya, kita perlu mencipta kunci API Tencent Cloud baharu pada konsol Tencent Cloud untuk mendapatkan akses kepada antara muka. Pada konsol, masukkan halaman "Pengurusan Kunci API", klik butang "Kunci Baharu" untuk menjana pasangan kunci API dan dapatkan dua nilai: AccessKeyId dan AccessKeySecret.

Seterusnya, kita perlu menulis kod Python untuk memanggil antara muka Tencent Cloud. Mula-mula, import perpustakaan yang diperlukan:

import requests
from PIL import Image
from io import BytesIO
import hashlib
import hmac
import base64

Kemudian, tentukan beberapa parameter yang diperlukan, seperti alamat antara muka Tencent Cloud API, kaedah permintaan, cap waktu, dll.:

secret_id = "your_secret_id"  # 替换为你的腾讯云API密钥
secret_key = "your_secret_key"  # 替换为你的腾讯云API密钥

url = "https://face.tencentcloudapi.com/"
method = "POST"
service = "face"
host = "face.tencentcloudapi.com"
region = "ap-guangzhou"
action = "DetectFace"
version = "2018-03-01"
algorithm = "TC3-HMAC-SHA256"
timestamp = int(time.time())
date = time.strftime("%Y-%m-%d", time.localtime(timestamp))

Seterusnya, kami mentakrifkan beberapa fungsi pemprosesan imej. Berikut ialah contoh penskalaan imej:

def resize_image(image, width, height):
    size=(width, height)
    image.thumbnail(size)
    return image

Kemudian, kami menukar imej kepada aliran bait, menjana Tandatangan dan menandatanganinya:

# Load image
image = Image.open("example.jpg")

# Resize image
new_image = resize_image(image, 200, 200)

# Convert image to byte stream
byte_stream = BytesIO()
new_image.save(byte_stream, format="JPEG")
image_data = byte_stream.getvalue()

# Generate Signature
hashed_request_payload = hashlib.sha256(image_data).hexdigest()
date = time.strftime("%Y-%m-%d", time.localtime(timestamp))
credential_scope = "{}/{}/{}/tc3_request".format(date, service, "tc3_request")
canonical_request = "POST
/

content-type:application/json
host:{}

content-type;host
{}
".format(host, hashed_request_payload)
string_to_sign = "{}
{}
{}
{}".format(algorithm, timestamp, credential_scope, hashlib.sha256(canonical_request.encode("utf-8")).hexdigest())
secret_date = hmac.new(("TC3" + secret_key).encode("utf-8"), date.encode("utf-8"), hashlib.sha256).digest()
secret_service = hmac.new(secret_date, service.encode("utf-8"), hashlib.sha256).digest()
secret_signing = hmac.new(secret_service, "tc3_request".encode("utf-8"), hashlib.sha256).digest()
signature = hmac.new(secret_signing, string_to_sign.encode("utf-8"), hashlib.sha256).hexdigest()

Akhirnya, kami lulus Tandatangan melalui parameter Pengesahan dalam pengepala permintaan dan menghantar permintaan :

# Send request
headers = {
    "Content-Type": "application/json",
    "Host": host,
    "Authorization": "{} Credential={}/{}, SignedHeaders=content-type;host, Signature={}".format(algorithm, secret_id, credential_scope, signature)
}
params = {
    "Action": action,
    "Version": version,
    "ImageBase64": base64.b64encode(image_data).decode("utf-8"),
    "MaxFaceNum": 1
}
response = requests.post(url, headers=headers, json=params)

Di atas ialah contoh kod yang menggunakan Python untuk antara muka dengan Tencent Cloud untuk melaksanakan fungsi pemprosesan imej. Dengan memanggil antara muka API Tencent Cloud, pemprosesan imej boleh dilakukan dengan mudah. Semasa proses pembangunan sebenar, anda boleh memanggil antara muka pemprosesan imej lain yang disediakan oleh Tencent Cloud mengikut keperluan anda sendiri untuk mencapai fungsi yang lebih kaya.

Saya harap artikel ini akan membantu anda memahami antara muka antara Python dan Tencent Cloud dan merealisasikan fungsi pemprosesan imej!

Atas ialah kandungan terperinci Gunakan Python untuk antara muka dengan Tencent Cloud untuk melaksanakan fungsi pemprosesan imej. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn