easy_thumbnails.processors.background 缩略图创建崩溃
thumbnail creation crashes in easy_thumbnails.processors.background
我正在使用 Django 和 easy-thumbnails 2.3。我的目的是拍摄图像,将其缩小以适合正方形,并在非正方形原始图像的情况下用白色填充空白区域。同样在透明图像的情况下,透明度应更改为白色。
我的 settings.py 包含以下行:
THUMBNAIL_PROCESSORS = (
'easy_thumbnails.processors.colorspace',
'easy_thumbnails.processors.autocrop',
'easy_thumbnails.processors.scale_and_crop',
'easy_thumbnails.processors.filters',
'easy_thumbnails.processors.background',
)
THUMBNAIL_ALIASES = {
'':{
'square_image': {'background':'#fff','replace_alpha':'#fff','size':(200,200)},
},
}
THUMBNAIL_TRANSPARENCY_EXTENSION = 'jpg'
我尝试了一些调试,一切似乎都运行良好并且有意义,直到代码到达 easy-thumbnails 的后台处理器函数中的第 318 行 processors.py
:
im = colorspace(im, replace_alpha=background, **kwargs)
此处调试器 returns 直接指向调用 background(im, size, background=None, **kwargs)
的方法。
我在THUMBNAIL_ALIASES中配置square_image
有什么问题吗?还能是别的吗?
事实证明,您不能同时使用来自后台处理器的 'background':'#fff'
和来自色彩空间处理器的 'replace_alpha':'#fff'
,因为 background
-key 变成了replace_alpha
在
im = colorspace(im, replace_alpha=background, **kwargs)
然后你得到两个 replace_alpha
,因为一个还在 **kwargs
。这会导致错误。但事实证明,在
THUMBNAIL_ALIASES = {
'':{
'square_image': {'background':'#fff','replace_alpha':'#fff','size':(200,200)}, #wrong
},
}
你甚至不需要 replace_alpha
。后台处理器不会在不合适的图像两侧添加条形,而是将图像写在 - 在我的例子中是白色 - 背景上。在此之前似乎没有发生色彩空间转换。所以正确的定义是
THUMBNAIL_ALIASES = {
'':{
'square_image': {'background':'#fff','size':(200,200)},
},
}
我正在使用 Django 和 easy-thumbnails 2.3。我的目的是拍摄图像,将其缩小以适合正方形,并在非正方形原始图像的情况下用白色填充空白区域。同样在透明图像的情况下,透明度应更改为白色。
我的 settings.py 包含以下行:
THUMBNAIL_PROCESSORS = (
'easy_thumbnails.processors.colorspace',
'easy_thumbnails.processors.autocrop',
'easy_thumbnails.processors.scale_and_crop',
'easy_thumbnails.processors.filters',
'easy_thumbnails.processors.background',
)
THUMBNAIL_ALIASES = {
'':{
'square_image': {'background':'#fff','replace_alpha':'#fff','size':(200,200)},
},
}
THUMBNAIL_TRANSPARENCY_EXTENSION = 'jpg'
我尝试了一些调试,一切似乎都运行良好并且有意义,直到代码到达 easy-thumbnails 的后台处理器函数中的第 318 行 processors.py
:
im = colorspace(im, replace_alpha=background, **kwargs)
此处调试器 returns 直接指向调用 background(im, size, background=None, **kwargs)
的方法。
我在THUMBNAIL_ALIASES中配置square_image
有什么问题吗?还能是别的吗?
事实证明,您不能同时使用来自后台处理器的 'background':'#fff'
和来自色彩空间处理器的 'replace_alpha':'#fff'
,因为 background
-key 变成了replace_alpha
在
im = colorspace(im, replace_alpha=background, **kwargs)
然后你得到两个 replace_alpha
,因为一个还在 **kwargs
。这会导致错误。但事实证明,在
THUMBNAIL_ALIASES = {
'':{
'square_image': {'background':'#fff','replace_alpha':'#fff','size':(200,200)}, #wrong
},
}
你甚至不需要 replace_alpha
。后台处理器不会在不合适的图像两侧添加条形,而是将图像写在 - 在我的例子中是白色 - 背景上。在此之前似乎没有发生色彩空间转换。所以正确的定义是
THUMBNAIL_ALIASES = {
'':{
'square_image': {'background':'#fff','size':(200,200)},
},
}