我正在尝试使用450的固定宽度来调整图片大小,并根据纵横比自动设置高度。当我以前(128x128)在PIL中制作经典缩略图时,此代码有效,因此我不确定为什么现在不起作用。它不会引发任何错误,它只会输出与以前相同的图像,没有任何变化。
import boto3
import os
import sys
import uuid
from PIL import Image
import PIL.Image
s3_client = boto3.client('s3')
def resize_image(image_path, resized_path):
with Image.open(image_path) as image:
basewidth = 450
wpercent = (basewidth / float(image.size[0]))
hsize = int((float(image.size[1]) * float(wpercent)))
image.resize(basewidth,hsize)
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 = '/tmp/resized-{}'.format(key)
s3_client.download_file(bucket, key, download_path)
resize_image(download_path, upload_path)
s3_client.upload_file(upload_path, '{}-resized'.format(bucket), key)
不熟悉此库,但建议您在调整大小时分配一个新变量。更改此:
image.resize(basewidth,hsize)
image.save(resized_path)
对此:
resizedImage = image.resize(basewidth,hsize)
resizedImage.save(resized_path)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句