gpt4 book ai didi

ios - Django 在上传后旋转 iphone 图片

转载 作者:可可西里 更新时间:2023-11-01 03:57:57 25 4
gpt4 key购买 nike

我在一个照片网站上工作,我希望用户能够上传纵向或横向照片。最大宽度应为 1250px,但如果处于纵向模式,最大高度可能为 1667px。当我以纵向上传照片时,它们会向左旋转 90 度。有没有办法使用 Pillow 确保照片保持正确的方向?

这是我的代码:

class Result(models.Model):
result01 = models.FileField(upload_to=get_upload_file_name, null=True, blank=True)
result01thumb = models.FileField(upload_to=get_upload_file_name, null=True, blank=True)

def save(self):
super(Result, self).save()
if self.result01:
size = 1667, 1250
image = Image.open(self.result01)
image.thumbnail(size, Image.ANTIALIAS)
fh = storage.open(self.result01.name, "w")
format = 'png'
image.save(fh, format)
fh.close()

重要的是用户能够在移动时从手机上传照片,因此正确的方向非常重要。有什么我可以在这里做的吗?

最佳答案

您可以尝试使用 Pillow 调整图像大小和自动旋转(基于 exif 信息)图像。

def image_resize_and_autorotate(infile, outfile):
with Image.open(infile) as image:
file_format = image.format
exif = image._getexif()

image.thumbnail((1667, 1250), resample=Image.ANTIALIAS)

# if image has exif data about orientation, let's rotate it
orientation_key = 274 # cf ExifTags
if exif and orientation_key in exif:
orientation = exif[orientation_key]

rotate_values = {
3: Image.ROTATE_180,
6: Image.ROTATE_270,
8: Image.ROTATE_90
}

if orientation in rotate_values:
image = image.transpose(rotate_values[orientation])

image.save(outfile, file_format)

关于ios - Django 在上传后旋转 iphone 图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30126374/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com