Django Imagekit背景填充

问题描述 投票:3回答:1

我刚刚开始使用Django并寻找解决方案来裁剪徽标并自动检测徽标背景以填充它。大多数徽标都是矩形的,但实际上我需要有方形图像。

这是我想做的一个例子。注意,从原始图像的第一个像素自动检测白色背景。我一直在关注Django Imagekit,但仍然不太清楚如何实现这一目标。 http://django-imagekit.readthedocs.org/en/1.1.0/#

有谁知道一个直截了当的方法吗?

enter image description here

django pillow django-imagekit
1个回答
3
投票

这是我为完成此操作而编写的Django Imagekit的自定义处理器。

from PIL import Image
from imagekit import ImageSpec, register
from imagekit.models import ImageSpecField
from imagekit.processors import ResizeToFit

class LogoProcessor(ImageSpec):
    format = 'JPEG'
    options = {'quality': 90}
    @property
    def processors(self):
        logoimage = self.source
        image = Image.open(logoimage)
        rgb_image = image.convert('RGB')
        r,g,b = rgb_image.getpixel((1, 1))
        return [ResizeToFit(300, 300,mat_color=(r,g,b))]

register.generator('logo_processor', LogoProcessor)

class Company(models.Model):
    company_logo = models.ImageField(upload_to=settings.MEDIA_ROOT,default='')
    company_logo_thumb = ImageSpecField(
            source='company_logo',
            id='logo_processor'
        )
© www.soinside.com 2019 - 2024. All rights reserved.