Python3 image add watermark

PIL image library

When using pip install PIL, the following error is reported:

Collecting PIL
Could not find a version that satisfies the requirement PIL (from versions: )
No matching distribution found for PIL

What actually needs to be installed isPillow

sudo pip install Pillow

Sample code:

# coding:utf-8

from PIL import Image, ImageDraw, ImageFont


def add_text_to_image(image, text):
    font = ImageFont.truetype('C:\Windows\Fonts\STXINGKA.TTF', 36)

    # 添加背景
    new_img = Image.new('RGBA', (image.size[0] * 3, image.size[1] * 3), (0, 0, 0, 0))
    new_img.paste(image, image.size)

    # 添加水印
    font_len = len(text)
    rgba_image = new_img.convert('RGBA')
    text_overlay = Image.new('RGBA', rgba_image.size, (255, 255, 255, 0))
    image_draw = ImageDraw.Draw(text_overlay)

    for i in range(0, rgba_image.size[0], font_len*40+100):
        for j in range(0, rgba_image.size[1], 200):
            image_draw.text((i, j), text, font=font, fill=(0, 0, 0, 50))
    text_overlay = text_overlay.rotate(-45)
    image_with_text = Image.alpha_composite(rgba_image, text_overlay)

    # 裁切图片
    image_with_text = image_with_text.crop((image.size[0], image.size[1], image.size[0] * 2, image.size[1] * 2))
    return image_with_text


if __name__ == '__main__':
    img = Image.open("test.jpg")
    im_after = add_text_to_image(img, '石家庄')
    im_after.save('水印.png')

Python3Mode can not be RGBAwritten asJPEG

JPGIt does not support transparency, RGBAfor red, green, blue Alphatransparency

You need to discard Alphachannel or save it as something that supports transparency such asPNG

Image class has a method of conversion, it can be used to RGBAconvert RBGthen you can use JPGthe

im = Image.open("audacious.png")
rgb_im = im.convert('RGB')
rgb_im.save('audacious.jpg')

Guess you like

Origin blog.csdn.net/yilovexing/article/details/104707320