本文实例为大家分享了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如何实现内容写在图片上相关推荐

  1. python 验证码图片 模拟登录_Python 模拟生成动态产生验证码图片的方法

    模拟动态产生验证码图片 模拟生成验证码,首先要做的是生成随机的字母,然后对字母进行模糊处理.这里介绍一下 Python 提供的 Pillow 模块. Pillow PIL:Python Image L ...

  2. python 读取特定一段文本_python提取文本内容 python读取文本每行指定内容

    用"python"怎么提取文件里的指定内容?原来这些年,他痊愈的只是外表,有一种伤,它深入骨髓,在人看不见的地方肆虐. python读取文件内容的方法: 一.最方便的方法是一次性读 ...

  3. python怎么在图片上写字_Python在图片中添加文字的两种方法

    本文主要介绍的是利用Python在图片中添加文字的两种方法,下面分享处理供大家参考学习,下来要看看吧 一.使用OpenCV 在图片中添加文字看上去很简单,但是如果是利用OpenCV来做却很麻烦.Ope ...

  4. python怎么在图片上写字_python在图片上写汉字

    1.python opencv的putText只能画英文上去 2.借鉴这个https://blog.csdn.net/dcrmg/article/details/79108491 使用pil 首先,你 ...

  5. python的pillow给图片加文字_python PIL(pillow)图像处理-图片上添加文字

    from PIL import Image, ImageDraw, ImageFont def gen_img(size=None): if size is None: size = 400 #生成大 ...

  6. python怎么在画布上写字_python ImageDraw 添加文字

    # 绘制文本 font = ImageFont.truetype("consola.ttf", 40, encoding="unic" ) # 设置字体 dra ...

  7. python爬取知乎话题_python爬取知乎话题图片

    前言 什么是网络爬虫(也叫网络蜘蛛)?简单来说,是一种用来自动浏览万维网程序或脚本(网络爬虫的典型应用就是我们所熟知的搜索引擎).既然如此,那么我们也可以写一个程序,用来自动浏览或者获取网页上的信息. ...

  8. python地图热力图是什么意思_python实现输入的数据在地图上生成热力图效果

    我就废话不多说了,直接贴代码,注意要先安装folium #-*-coding:utf8-*- #输入data生成热力图html,借助了leaflet,没网不能用 import os import fo ...

  9. python语言编写一个生成九宫格图片的代码_python简单实现9宫格图片实例

    在日常生活中我们经常在朋友圈看到有人发九宫格图片,其实质就是将一张图片切成九份,然后在微信中一起发这九张图. 那么我们如何自己动手实现呢? 说到切图Python 就可以实现,主要用到的 Python ...

最新文章

  1. 变量声明和定义有什么区别
  2. 将 Smart 构件发布到 Maven 中央仓库
  3. Matlab之for循环语句
  4. 大数据驱动线上线下场景融合和零售数字化营销(有福利)
  5. mysql5.7.25my.ini_mysql5.7 没有my.ini 的解决办法
  6. php下载apk文件源码下载,php实现文件下载功能的几个代码分享
  7. 【必懂C++】第一个程序当然是HelloWorld呀 01
  8. 简单的php探针,php探针程序的推荐
  9. ubuntu下查看apache的日志
  10. Lenovo System X3850 X5 服务器管理口IMM被锁定无法登录的故障处理
  11. mindspore-ResNet101使用GPU进行训练时报错
  12. 7-1 jmu-python-汇率兑换
  13. 分布式系统关注点——「负载均衡」到底该如何实施?
  14. Python爬虫:博客被抄袭了还不知道?快来查查
  15. python的一些报错解决
  16. 愚人节巧用CSS开个极客式玩笑以chrome为例
  17. VSCode彩虹屁:你就是因为想太多如果,所以才交不到girlFriend吧
  18. 你所不知的X86 CPU微码机制
  19. 史上最简单的软件破解——5行脚本代码完美破解99%的过期软件
  20. 盈鹏飞嵌入式_EVB-T335 TF卡功能测试手册

热门文章

  1. jQuery整理笔记七----几个经典表单应用 .
  2. 实现多模交互融合的四个阶段
  3. Transferable Joint Attribute-Identity Deep Learning for Unsupervised Person Re-Identification
  4. R使用Z分数和四分位数区间法去除异常值(outlier)
  5. 云师大计算机调剂,云南师范大学调剂公告
  6. python实现单机斗地主手机版下载_单机斗地主手机版下载免费版乐
  7. 机器学习—聚类(一)(L—P范数/闽可夫斯基距离/马氏距离/相关系数/夹角余弦)
  8. Mysql学习之优化篇
  9. 跨考西电计算机科学与技术研究生经验贴,西安交通大学912计算机133分经验分享...
  10. 微博点赞数等信息和公众号点赞数等信息爬取