3

私はDjangoを使い始めたばかりで、ロゴをトリミングし、ロゴの背景を自動的に検出して塗りつぶすソリューションを探しています。ほとんどのロゴは長方形ですが、実際には正方形の画像が必要です。

これが私がやりたいことの例です。白い背景は、元の画像の最初のピクセルから自動的に検出されることに注意してください。私は Django Imagekit を見てきましたが、これを達成する方法はまだはっきりしていません。http://django-imagekit.readthedocs.org/en/1.1.0/#

これを行う簡単な方法を知っている人はいますか?

ここに画像の説明を入力

4

1 に答える 1

4

これを実現するために私が書いた 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'
        )
于 2015-09-17T13:37:11.200 に答える