python如何实现内容写在图片上

 更新时间:2018年03月23日 09:22:16   作者:m0_37932636  
这篇文章主要为大家详细介绍了python如何实现内容写在图片上,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了python将内容写在图片上的具体代码,供大家参考,具体内容如下

# -*- coding: utf-8 -*-
# Created on 2018/3/20
import base64
import random
import os
import sys
import time

from PIL import Image, ImageFont, ImageDraw

reload(sys)
sys.setdefaultencoding('utf8')

BASE_PATH = "E:\\MyWork\\qingwa\\5\\" # 底图所在路径
TMP_PATH = "E:\\MyWork\\qingwa\\5\\tmp\\" # 生成图片缓存路径
font_size = 35


# 216 194 119

class MyCar:

 def __init__(self, name):
  self.name = name
  self.name_append = "的气质适合开"
  if not os.path.exists(TMP_PATH):
   os.mkdir(TMP_PATH)
  self.end_path = TMP_PATH + str(int(time.time())) + str(random.randint(100, 999)) + ".png" # 图片处理完之后保存的文件名
  self.data = "" # base64数据初始化
  self.pic_handle()
  self.base_64()

 def base_64(self):
  """
  将图片读成base64的格式,返回给移动端渲染
  :return:
  """
  res = open(self.end_path, 'rb')
  base64_data = base64.b64encode(res.read())
  res.close()
  d = {
   'image': 'data:image/jpg;base64,' + base64_data
  }
  self.data = d

 def pic_handle(self):
  # 底图路径
  img_path = BASE_PATH + str(random.randint(1, 8)) + ".jpg"
  # 底图的操作对象
  font_img = Image.open(img_path).convert("RGBA")
  # 即将在该底图上写字
  draw = ImageDraw.Draw(font_img)
  # 画笔
  name_font = ImageFont.truetype("wryh.TTF", size=35)
  # 即将写的字
  name = self.name + self.name_append
  # 底图的宽高
  w, h = font_img.size
  # 写在底图上的区域,计算字符串的长度,让它宽度居中(高度居中 同理)
  # name_loaction分别指宽高,图片左上角为(0,0)坐标
  # 写字,fill为字体颜色,RGB值
  # try except 避免字符串编码的问题(unicode编码 再次转换会报错)
  try:
   name_location = (((w - len(unicode(name, "UTF-8")) * font_size) / 2), 76)
   draw.text(name_location, unicode(name, "UTF-8"), fill=(216, 194, 119), font=name_font)
  except BaseException as e:
   print e.message
   name_location = (((w - len(name) * font_size) / 2), 76)
   draw.text(name_location, name, fill=(216, 194, 119), font=name_font)
  print self.end_path
  # 保存处理好的图片
  font_img.save(self.end_path)
  # 显示图片
  font_img.show()

 def end_data(self):
  return self.data


if __name__ == '__main__':
 my_car = MyCar("测试")
 return_data = my_car.end_data()
 print type(return_data)

效果图

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • python任务调度实例分析

    python任务调度实例分析

    这篇文章主要介绍了python任务调度实现方法,实例分析了任务调度的原理与Python实现方法,需要的朋友可以参考下
    2015-05-05
  • python倒序for循环实例

    python倒序for循环实例

    这篇文章主要介绍了python倒序for循环实例,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • yolov5中anchors设置实例详解

    yolov5中anchors设置实例详解

    在YOLOV5算法之中,针对不同的数据集,一般会预先设置固定的Anchor,下面这篇文章主要给大家介绍了关于yolov5中anchors设置的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-06-06
  • Python基础知识_浅谈用户交互

    Python基础知识_浅谈用户交互

    下面小编就为大家带来一篇Python基础知识_浅谈用户交互。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • Python入门教程(十九)python的函数详解

    Python入门教程(十九)python的函数详解

    这篇文章主要介绍了Python入门教程(十九)python的函数,函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段,需要的朋友可以参考下
    2023-04-04
  • Python实现的服务器示例小结【单进程、多进程、多线程、非阻塞式】

    Python实现的服务器示例小结【单进程、多进程、多线程、非阻塞式】

    这篇文章主要介绍了Python实现的服务器,结合实例形式分析了Python实现单进程、多进程、多线程、非阻塞式服务器的相关操作技巧,需要的朋友可以参考下
    2019-05-05
  • Python创建增量目录的代码实例

    Python创建增量目录的代码实例

    这篇文章主要给大家介绍了关于Python创建增量目录的相关资料,文中通过实例代码介绍的非常详细,对大家学习或者使用python具有一定的参考学习价值,需要的朋友可以参考下
    2022-11-11
  • 如何使用python检测某网盘链接是否有效

    如何使用python检测某网盘链接是否有效

    这篇文章主要为大家介绍了使用python检测某网盘链接是否有效的方法示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • 推荐下python/ironpython:从入门到精通

    推荐下python/ironpython:从入门到精通

    推荐下python/ironpython:从入门到精通...
    2007-10-10
  • python脚本实现统计日志文件中的ip访问次数代码分享

    python脚本实现统计日志文件中的ip访问次数代码分享

    这篇文章主要介绍了python脚本实现统计日志文件中的ip访问次数代码分享,注意此脚本只适用ip在每行开头的日志文件,需要的朋友可以参考下
    2014-08-08

最新评论