python图片绘制文字

背景

  • selenium截图加上地址栏并写入链接
  • 提前准备地址栏背景图


    header_bg_1440.png

目标

add_text.jpg

过程

    def screenshot_add_head(self, html_pic, max_len=210):
        '''
        给网页截图添加地址栏
        :param html_pic: selenium截图 (bytes)
        :param max_len:  地址栏最大长度 (int)
        :return: 拼接后的图片 (bytes)
        '''
        try:
            # 1.地址栏图片绘制url
            bk_img = cv2.imread(self.header_bg_path)
            # 设置需要显示的字体  微软雅黑
            fontpath = "font/msyh.ttc"
            # 字体大小
            font = ImageFont.truetype(fontpath, 13)
            img_pil = Image.fromarray(bk_img)
            draw = ImageDraw.Draw(img_pil)
            draw_text = self.browser.current_url
            # 超长链接截取
            if len(draw_text) > max_len:
                draw_text = draw_text[0:max_len] + '....'
            # 绘制文字信息,位置xy,颜色
            draw.text((140, 12), draw_text, font=font, fill=(255, 255, 255))
            # bk_img = np.array(img_pil)
            # cv2.waitKey()
            # header_pic = cv2.imwrite("add_text.jpg", bk_img)
            # 2.拼接图片
            # img1 = Image.open(bk_img)
            img1 = img_pil
            bytes_stream = io.BytesIO(html_pic)
            img2 = Image.open(bytes_stream)
            # 统一图片尺寸,可以自定义设置(宽,高)
            img1 = img1.resize((self.window_size_width, img1.size[1]), Image.ANTIALIAS)
            img2 = img2.resize((self.window_size_width, img2.size[1]), Image.ANTIALIAS)
            size1, size2 = img1.size, img2.size
            joint = Image.new('RGB', (size1[0], size1[1] + size2[1]))
            loc1, loc2 = (0, 0), (0, size1[1])
            joint.paste(img1, loc1)
            joint.paste(img2, loc2)
            # 将Image转为bytes
            img_bytes = self.image2byte(joint)
            self.logger.info('截图编辑完成')
            return img_bytes
        except Exception as e:
            self.logger.info('-----> edit screenshot err:' + e)

总结

  • self.window_size_width = 1440 截图宽度1440像素

致谢

  • 如果发现问题请评论
  • 如果对您有帮助请点赞
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容