首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >缩略图创建在easy_thumbnails.processors.background中崩溃

缩略图创建在easy_thumbnails.processors.background中崩溃
EN

Stack Overflow用户
提问于 2016-08-24 17:06:07
回答 1查看 207关注 0票数 0

我使用的是Django和easy-thumbnails 2.3。我的目的是拍摄一张图像,缩小它,使其适合一个正方形,并在非正方形原始图像的情况下用白色填充空白区域。另外,在透明图像的情况下,应将透明度更改为白色。

我的settings.py包含以下几行:

代码语言:javascript
复制
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 processors.py的后台处理器函数中的第318行才有意义

代码语言:javascript
复制
im = colorspace(im, replace_alpha=background, **kwargs)

在这里,调试器直接返回到调用background(im, size, background=None, **kwargs)的方法。

我在THUMBNAIL_ALIASES中的square_image配置有问题吗?还会有别的事吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-24 17:49:15

事实证明,您不能同时从后台处理器使用'background':'#fff'和从colorspace处理器使用'replace_alpha':'#fff',因为background-key在

代码语言:javascript
复制
im = colorspace(im, replace_alpha=background, **kwargs)

然后你会得到两个replace_alpha,因为其中一个还在**kwargs中。这会导致错误。但事实也证明,在

代码语言:javascript
复制
THUMBNAIL_ALIASES = {
    '':{            
        'square_image': {'background':'#fff','replace_alpha':'#fff','size':(200,200)}, #wrong
        },
    }

你甚至不需要replace_alpha。背景处理器不会在不适合的图像的边上添加条,而是将图像写在-在我的情况下是白色-背景上。在此之前,色彩空间转换似乎不会发生。所以正确的定义应该是

代码语言:javascript
复制
THUMBNAIL_ALIASES = {
    '':{            
        'square_image': {'background':'#fff','size':(200,200)},
        },
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39118953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档