我正在使用下面的代码,该代码负责使用python的pillow库更改图像分辨率。我正在aws lambda上部署代码。代码运行良好,但在调整大小时存在一个简单的逻辑缺陷。本规范的作用如下:
1、将图像上传到S3 bucket
代码将图像大小调整为两个不同的维度,并将其上载到不同的bucket。
但是代码以相同的维度上传了这两幅图像,我不明白为什么
from __future__ import print_function
import boto3
import os
import sys
import uuid
from PIL import Image
import PIL.Image
s3_client = boto3.client('s3')
def resize_image_DOG(image_path, resized_path):
with Image.open(image_path) as image:
dim=(3840,2160)
image.resize(dim)
image.save(resized_path)
def resize_image_CAT(image_path, resized_path):
with Image.open(image_path) as image:
dim=(1920,1080)
image.resize(dim)
image.save(resized_path)
def handler(event, context):
for record in event['Records']:
bucket = record['s3']['bucket']['name']
key = record['s3']['object']['key']
download_path = '/tmp/{}{}'.format(uuid.uuid4(), key)
upload_path_1 = '/tmp/resized-{}{}'.format('test1',key)
upload_path_2 = '/tmp/resized-{}{}'.format('test2',key)
s3_client.download_file(bucket, key, download_path)
resize_image_DOG(download_path, upload_path_1)
resize_image_CAT(download_path, upload_path_2)
s3_client.upload_file(upload_path_1, '{}resized'.format(bucket), key+'xxxhdpi-3840*2160'+'.png')
s3_client.upload_file(upload_path_2, '{}resized'.format(bucket), key+'xxxhdpi-1920*1080'+'.png')
上载到已调整大小的bucket的2个已调整大小的图像的尺寸相同,即仅第一个resize\u image\u DOG尺寸(3340x2160),但名称正确,请帮助