11

我有一个缩略图过滤器,当图像高于它的宽度时,它总是将图像向左旋转 90 度(我已经检查过,原始图像是直的,而缓存的图像是旋转的)。相关代码如下所示:

profile_image = models.ImageField(upload_to='profile_images', default='profile_images/icon.png')
profile_icon = ImageSpecField(source='profile_image',
                              processors=[processors.Thumbnail(width=72, height=72, crop=True)],
                              format='JPEG',
                              options={'quality': 60})

如何停止自动旋转?

4

3 回答 3

10

很高兴你知道了这一点,但 ImageKit 可能仍然可以帮助你。查看转置处理器 ( imagekit.processors.Transpose)。默认情况下,它将使用图像中的元数据,并按该量旋转!请务必首先列出此处理器,因为后续处理器将从图像中删除元数据。

于 2013-06-30T21:24:04.960 回答
8

为了详细说明 matthewwithanm 的有用指针,OP 的代码将被调整为如下所示:

profile_image = models.ImageField(upload_to='profile_images', default='profile_images/icon.png')
profile_icon = ImageSpecField(source='profile_image',
                              processors=[
                                  processors.Transpose(),
                                  processors.Thumbnail(width=72, height=72, crop=True)
                              ],
                              format='JPEG',
                              options={'quality': 60})

即,添加processors.Transpose()不带参数的调用。

我从 Flickr 下载的原始纵向格式图像遇到了这个问题。该图像(在 iPhone 上拍摄)是纵向格式,默认情况下 imagekit 会将其旋转,在这种特殊情况下,逆时针旋转 90 度。

于 2016-06-06T14:44:47.020 回答
2

好的,事实证明这是上传图像的问题,而不是 Django 的问题。在 iPhone 上拍摄的照片可能包含手机方向元数据,导致浏览器认为照片的自然方向是横向的。但是,如果我在预览中打开该照片,将其向左旋转然后恢复正常,然后再次保存,则没有问题。

Feed 图像显示在某些浏览器中旋转

惊喜!

于 2013-06-30T18:23:30.323 回答