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


Posted in Python onMarch 23, 2018

本文实例为大家分享了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中遍历文件的3个方法
Sep 02 Python
python中lambda与def用法对比实例分析
Apr 30 Python
Python中http请求方法库汇总
Jan 06 Python
Win7 64位下python3.6.5安装配置图文教程
Oct 27 Python
利用Python如何制作好玩的GIF动图详解
Jul 11 Python
Python 忽略warning的输出方法
Oct 18 Python
PyQt5实现类似别踩白块游戏
Jan 24 Python
Python3.5面向对象与继承图文实例详解
Apr 24 Python
Python:二维列表下标互换方式(矩阵转置)
Dec 02 Python
python+adb+monkey实现Rom稳定性测试详解
Apr 23 Python
python多进程下的生产者和消费者模型
May 07 Python
Django框架中表单的用法
Jun 10 Python
Python实现的自定义多线程多进程类示例
Mar 23 #Python
python爬取各类文档方法归类汇总
Mar 22 #Python
关于Python正则表达式 findall函数问题详解
Mar 22 #Python
Django自定义过滤器定义与用法示例
Mar 22 #Python
Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能示例
Mar 22 #Python
Python cookbook(数据结构与算法)将名称映射到序列元素中的方法
Mar 22 #Python
Python cookbook(数据结构与算法)从字典中提取子集的方法示例
Mar 22 #Python
You might like
php 什么是PEAR?
2009/03/19 PHP
php实现监听事件
2013/11/06 PHP
PHP魔术引号所带来的安全问题分析
2014/07/15 PHP
destoon调用企业会员公司形象图片的实现方法
2014/08/21 PHP
thinkPHP实现将excel导入到数据库中的方法
2016/04/22 PHP
Laravel中间件实现原理详解
2016/10/09 PHP
PHP实现微信退款功能
2018/10/02 PHP
jfinal与bootstrap的登录跳转实战演习
2015/09/22 Javascript
jQuery页面刷新(局部、全部)问题分析
2016/01/09 Javascript
Vue实现商品分类菜单数量提示功能
2019/07/26 Javascript
vue+vant-UI框架实现购物车的复选框全选和反选功能
2019/11/05 Javascript
基于vue+uniapp直播项目实现uni-app仿抖音/陌陌直播室功能
2019/11/12 Javascript
JS出现404错误原理及解决方案
2020/07/01 Javascript
vue-cli3中配置alias和打包加hash值操作
2020/09/04 Javascript
[51:32]Optic vs Serenity 2018国际邀请赛淘汰赛BO3 第一场 8.22
2018/08/23 DOTA
Python实现的数据结构与算法之快速排序详解
2015/04/22 Python
Python django实现简单的邮件系统发送邮件功能
2017/07/14 Python
Python数据类型之List列表实例详解
2019/05/08 Python
Django Rest framework三种分页方式详解
2019/07/26 Python
Python面向对象程序设计之继承、多态原理与用法详解
2020/03/23 Python
基于Python爬取搜狐证券股票过程解析
2020/11/18 Python
Python之Sklearn使用入门教程
2021/02/19 Python
html5的input的required使用中遇到的问题及解决方法
2018/04/24 HTML / CSS
狗狗玩具、零食和咀嚼物的月度送货服务:Super Chewer
2018/08/22 全球购物
腾讯公司的一个sql题
2013/01/22 面试题
会计实习期自我鉴定
2013/10/06 职场文书
检察官就职演讲稿
2014/01/13 职场文书
网页美工求职信
2014/02/15 职场文书
《诺贝尔》教学反思
2014/02/17 职场文书
精彩的演讲稿开头
2014/05/08 职场文书
护校行动方案
2014/05/31 职场文书
人力资源管理专业自荐书
2014/07/07 职场文书
领导四风问题整改措施思想汇报
2014/10/13 职场文书
党员教师群众路线个人整改措施
2014/10/28 职场文书
2015年小学总务工作总结
2015/07/21 职场文书
golang实现一个简单的websocket聊天室功能
2021/10/05 Golang