簡體   English   中英

縮略圖創建在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'

我已經嘗試了一些調試,一切似乎工作得很好,很有意義,直到代碼達到的易縮略圖背景處理器功能的線318 processors.py

im = colorspace(im, replace_alpha=background, **kwargs)

在這里,調試器直接返回到調用background(im, size, background=None, **kwargs)

我在THUMBNAIL_ALIASES中對square_image配置有什么問題嗎? 還可以嗎?

事實證明,您不能同時使用背景處理器中的'background':'#fff'和色彩空間處理器中的'replace_alpha':'#fff' ,因為background 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)},
        },
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM