PIL实现两张图片合成一张,和图片加文字

PIL实现两张图片合成一张,和图片加文字

文章目录:


首先说明一下:
(小姐姐是谁,是my sweetheart ,请勿使用,谢谢!!!)

一、PIL实现两张图片合成一张

1、方法一:

使用说明:

主要是通过吧图片转换成RGBA通道,增加一个透明度,这样就可以通过调节两张图片的透明度的比例大小,然后实现两张图片同时显示。
blended_img = img1 * (1 – alpha) + img2* alpha 进行。


注意:

  • 两张图片的尺寸大小要一直
  • 如果是jpg格式图片,要转换成RGBA格式,png本身就是含有透明度的
__Author__ = 'Shliang'

from PIL import Image

def blend_images1():
    img1 = Image.open("test_img/1482928474796.jpg")
    img1 = img1.convert('RGBA')

    img2 = Image.open("test_img/7104436331f8db26-1.jpg")
    img2 = img2.convert('RGBA')
    img2 = img2.resize(img1.size)
    print(img2.size)

    img = Image.blend(img1, img2, 0.3)
    img.show()
    img.save("blend1.png")

if __name__ == "__main__":
    blend_images1()

显示效果:
PIL实现两张图片合成一张,和图片加文字

2、方法二

__Author__ = 'Shliang'

from PIL import Image

# 该接口使用掩码(mask)的形式对两幅图像进行合并。
def blend_images2():
    img1 = Image.open("test_img/1482928474796.jpg")
    img1 = img1.convert('RGBA')

    img2 = Image.open("test_img/7104436331f8db26-1.jpg")
    img2 = img2.convert('RGBA')

    r, g, b, alpha = img2.split()
    alpha = alpha.point(lambda i: i > 0 and 204)  # 204起到的效果和使用blend()接口时的0.3类似。
    print("=========", alpha)  # <PIL.Image.Image image mode=L size=751x1334 at 0x1B517958160>

    img = Image.composite(img2, img1, alpha)

    img.show()
    img.save("blend2.png")


if __name__ == "__main__":
    blend_images2()

显示效果:
PIL实现两张图片合成一张,和图片加文字

二、图片添加文字

from PIL import Image, ImageDraw, ImageFont

def images_add_test(image_path):

    img = Image.open(image_path)
    print(img.size)  # (300, 300)
    draw = ImageDraw.Draw(img)  # 生成绘制对象draw
    typeface = ImageFont.truetype('xindexingcao57.ttf', 18)  # 参数: 字体  字体大小

    # darw.text()回执文字并生成图片
    draw.text((75, 150), "我的意中人\n   会踩着七彩祥云来接我", fill=(255, 0, 0),
              font=typeface)    # 参数: 位置  文字   文字颜色  字体
    img.show()
    img.save("result.png")  # 保存


if __name__ == "__main__":
    images_add_test("emotion.jpeg")

原图:
PIL实现两张图片合成一张,和图片加文字
加上文字之后的效果图:
PIL实现两张图片合成一张,和图片加文字


码字不易,且看且珍惜!

PIL实现两张图片合成一张,和图片加文字支付宝收款码
PIL实现两张图片合成一张,和图片加文字微信收款码

如果你热衷技术,想寻找志同道合的伙伴,欢迎加入我们!

PIL实现两张图片合成一张,和图片加文字微信交流
PIL实现两张图片合成一张,和图片加文字QQ技术交流群