图片拼接-python

from os import listdir
from PIL import Image, ImageDraw, ImageFont


class MakePicture:
    def __init__(self):
        self.width = 0
        self.height = 0
        self.text = ''

    def run(self, text):
        self.text = text
        # 获取验证码图片尺寸
        self.get_photo_width()
        # 生成空白图片
        self.make_white_pic()
        # 拼接
        self.joint(‘C:\\’)
        # 添加文本
        self.draw_text()

    def get_photo_width(self):
        """ 获取验证码图片尺寸"""
        self.width, self.height = Image.open("aa.jpg").size

    def make_white_pic(self):
        """ 生成空白图片"""
        img = Image.new('RGB', (self.width, 20), (255, 255, 255))
        img.save('bg.jpg')

    def joint(self, path):
        """拼接图片"""
        # 获取当前文件夹中所有JPG图像
        im_list = [Image.open(fn) for fn in listdir(path) if fn.endswith('.jpg')]

        # 创建空白长图
        result = Image.new(im_list[0].mode, (self.width, self.height + 20))
        # 拼接图片
        [result.paste(im, box=(0, i * self.height)) for i, im in enumerate(im_list)]
        # for i, im in enumerate(im_list):
        #     result.paste(im, box=(0, i * self.height))
        # 保存图片
        result.save('code.png')

    def draw_text(self):
        """# 添加文本"""
        img = Image.open("code.png")
        draw = ImageDraw.Draw(img)  # 生成绘制对象draw
        typeface = ImageFont.truetype('simkai.ttf', 12)  # 字体
        # text('字体坐标')  fill('填充坐标')
        draw.text((0, self.height + 5), self.text, fill=(120, 0, 80), font=typeface)
        img.save("code.png")  # 保存


if __name__ == '__main__':
    MakePicture().run("请输入红色文字")

注:aa.jpg - 第一张图片
code.png - 成品图

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 郭小凤-讲师五期-陕西大荔-坚持原创分享246天(健身打卡第31天) 明天将是我们大荔心理咨询协会第一次的启动...
    跑步遇到最好的自己阅读 231评论 0 0
  • 焦点网络初级11期(信阳)刘鸿梅 2018-12-07 周五 坚持原创分享第122天
    刘鸿梅阅读 126评论 0 0
  • 2018.06.08日 星期五 周末了,这个月是上旬已经没影子了,人就是这样,要活在当下,昨日追不回,明日不可见,...
    如烟_f580阅读 332评论 2 4