我试图拍摄大(巨大)图像(来自数码相机),并将它们转换成我可以在网络上显示的内容.这似乎很简单,也许应该是.但是,当我尝试使用PIL创建缩略图版本时,如果我的源图像高于它的宽度,则生成的图像旋转90度,使得源图像的顶部位于结果图像的左侧.如果源图像宽度高于高图像,则生成的图像是正确的(原始)方向.它可能与我发送的2元组大小有关吗?我正在使用缩略图,因为它似乎是为了保持纵横比.或者我只是完全失明,做一些愚蠢的事情?大小元组是1000,1000,因为我希望最长边缩小到1000像素,同时保持AR保持.
代码似乎很简单
img = Image.open(filename)
img.thumbnail((1000,1000), Image.ANTIALIAS)
img.save(output_fname, "JPEG")
Run Code Online (Sandbox Code Playgroud)
在此先感谢您的帮助.
我正在尝试使用Python来调整图片大小.使用我的相机,文件都是以横向方式编写的.
exif信息处理标签以要求图像查看器以某种方式旋转.由于大多数浏览器都不理解这些信息,因此我想使用此EXIF信息旋转图像并保留所有其他EXIF信息.
你知道我怎么能用Python做到这一点吗?
阅读EXIF.py源代码,我发现了类似的东西:
0x0112: ('Orientation',
{1: 'Horizontal (normal)',
2: 'Mirrored horizontal',
3: 'Rotated 180',
4: 'Mirrored vertical',
5: 'Mirrored horizontal then rotated 90 CCW',
6: 'Rotated 90 CW',
7: 'Mirrored horizontal then rotated 90 CW',
8: 'Rotated 90 CCW'})
Run Code Online (Sandbox Code Playgroud)
我如何使用此信息和PIL来应用它?
我正在一个照片网站上工作,我希望用户能够上传纵向或横向照片.最大宽度应为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()
Run Code Online (Sandbox Code Playgroud)
用户能够在移动时上传手机中的照片非常重要,因此正确的方向非常重要.我能在这做什么吗?