Оригинальный JPG
Конвертированный PNG
Код: Выделить всё
def convert_image (s3_source_key, prefix):
playout_key = prefix + '_playout.png'
thumbnail_key = prefix + '_thumb.png'
all_good = False
try:
s3_client = boto3.client('s3')
# read the original file
file_object = s3_client.get_object(Bucket=S3_SOURCE_BUCKET, Key=s3_source_key)['Body']
file_buffer = file_object.read()
im_orig = Image.open(BytesIO(file_buffer))
# save to png (even if original is actually a png)
buffer = BytesIO()
im_orig.convert('RGBA').save(buffer, 'PNG', optimize=True)
buffer.seek(0)
s3_client.put_object(Body=buffer, Bucket=BUCKET_NAME, Key=playout_key)
# create a thumbnail for an image asset
im = Image.open(BytesIO(file_buffer))
width, height = im.size
new_w = width / 3 # 3 is a default resize coefficient
new_h = height / 3
im = im.convert("RGBA")
im = im.resize((int(new_w), int(new_h)))
buffer = BytesIO()
im.save(buffer, 'PNG')
buffer.seek(0)
s3_client.put_object(Body=buffer, Bucket=BUCKET_NAME, Key=thumbnail_key)
Я также пытался сохранить PNG с флагом «оптимизировано», установленным в значение «False».
Кроме того, я пытался сохранить цветовой профиль. .
По-прежнему не повезло...
Подробнее здесь: https://stackoverflow.com/questions/790 ... -using-pil
Мобильная версия