Maison > Article > développement back-end > Utiliser Python pour s'interfacer avec Tencent Cloud afin d'implémenter des fonctions de traitement d'image
Utilisez Python pour vous interfacer avec Tencent Cloud afin de mettre en œuvre des fonctions de traitement d'images
Avec le développement rapide d'Internet, l'application des images est de plus en plus répandue. La demande en traitement d’images augmente également. Tencent Cloud fournit une multitude de fonctions de traitement d'image, qui peuvent identifier, recadrer, zoomer, compresser et autres images. Cet article expliquera comment utiliser Python pour s'interfacer avec Tencent Cloud afin d'implémenter des fonctions de traitement d'image.
Tout d'abord, nous devons préparer l'environnement de développement Python et installer les bibliothèques dépendantes pertinentes. Dans cet article, nous utiliserons la bibliothèque de requêtes pour les requêtes d'interface et la bibliothèque PIL pour le traitement d'images. Il peut être installé à l'aide de la commande pip :
pip install requests pip install pillow
Ensuite, nous devons créer une nouvelle clé API Tencent Cloud sur la console Tencent Cloud pour accéder à l'interface. Sur la console, entrez dans la page « Gestion des clés API », cliquez sur le bouton « Nouvelle clé » pour générer une paire de clés API et obtenez deux valeurs : AccessKeyId et AccessKeySecret.
Ensuite, nous devons écrire du code Python pour appeler l'interface Tencent Cloud. Tout d'abord, importez les bibliothèques requises :
import requests from PIL import Image from io import BytesIO import hashlib import hmac import base64
Ensuite, définissez certains paramètres nécessaires, tels que l'adresse de l'interface de l'API Tencent Cloud, la méthode de requête, l'horodatage, etc. :
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))
Ensuite, nous définissons quelques fonctions de traitement d'image. Ici, nous prenons comme exemple la mise à l'échelle de l'image :
def resize_image(image, width, height): size=(width, height) image.thumbnail(size) return image
Ensuite, nous convertissons l'image en flux d'octets, générons une signature et la signons :
# 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()
Enfin, nous transmettons la signature via le paramètre d'authentification dans l'en-tête de la requête et envoyons le requête :
# 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)
Ce qui précède est un exemple de code qui utilise Python pour s'interfacer avec Tencent Cloud afin d'implémenter des fonctions de traitement d'image. En appelant l'interface API de Tencent Cloud, le traitement des images peut être facilement effectué. Pendant le processus de développement proprement dit, vous pouvez appeler d'autres interfaces de traitement d'image fournies par Tencent Cloud en fonction de vos propres besoins pour obtenir des fonctions plus riches.
J'espère que cet article vous aidera à comprendre l'interface entre Python et Tencent Cloud et à réaliser la fonction de traitement d'image !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!