利用python pil 实现给图片上添加文字

图片中添加文字
#-*- coding: utf-8 -*-
from PIL import Image,ImageDraw,ImageFont
ttfont = ImageFont.truetype("D:\Python目录\msyh.ttc",20) #//这里我之前使用Arial.ttf时不能打出中文,用华文细黑就可以
im = Image.open("D:\客户程序\\1.jpg")
draw = ImageDraw.Draw(im)
draw.text((10,10),u'韩寒', fill=(0,0,0),font=ttfont)
draw.text((40,40),u'杨利伟', fill=(0,0,0),font=ttfont)
im.show()

获得文字尺寸

text=u'杨利伟'
Font = ImageFont.truetype("D:\Python目录\msyh.ttc",20)
Font.getsize(text)
>>>(60, 25)

Python用Pillow(PIL)进行简单的图像操作

用Python来合并图片(SoEasy)

python PIL合并半透明的png图片

转换通道

https://blog.csdn.net/icamera0/article/details/50843172

重新设置图片大小

a=font_background.resize((10,10),Image.ANTIALIAS)

半成品

#-*- coding: utf-8 -*-
from PIL import Image,ImageDraw,ImageFont
字号=30
字体="C:\Windows\Fonts\simkai.ttf"
文字和背景向上偏移=300
单独文字上下偏移=0
文字左右偏移=0
黑背景左右偏移=0
文字颜色=(255,255,255)
水印文字='小哈nizaig你在干嘛'.replace(' ','')
方背景宽度增加=-int(字号/1.3) ttfont = ImageFont.truetype(字体,字号)#字体,和字体大小
im = Image.open("D:\客户程序\\1.jpg")#要加文字的图
im=im.convert('RGBA')
draw = ImageDraw.Draw(im,mode='RGBA')
font_background=Image.open("D:\Python目录\方.png")#水印背景圆角图
round=Image.open("D:\Python目录\圆.png")
font=u'%s'%水印文字 im_size=im.size#原图大小
font_size=ttfont.getsize(font)#文字尺寸
font_background_a=font_background.resize((font_size[0]+方背景宽度增加,font_size[1]),Image.ANTIALIAS)#方背景大小尺寸
round_W_H=round.resize((font_size[1],font_size[1]),Image.ANTIALIAS)#圆的大小 pos_ads_img=(int(im_size[0]/2-font_background_a.size[0]/2+黑背景左右偏移),文字和背景向上偏移)#方图片位置 round_ads_left=(int(pos_ads_img[0]-round_W_H.size[0]/2),pos_ads_img[1])#圆图1的位置
font_ads=(int(im_size[0]/2-font_size[0]/2+文字左右偏移),文字和背景向上偏移+单独文字上下偏移)
round_ads_right=(int(pos_ads_img[0]+font_background_a.size[0]-round_W_H.size[0]/2),pos_ads_img[1]) im.paste(round_W_H,round_ads_left,mask=round_W_H)#圆背景摆放位置
im.paste(round_W_H,round_ads_right,mask=round_W_H)#圆背景摆放位置 im.paste(font_background_a,pos_ads_img)#方形摆放位置
draw.text(font_ads,font, fill=(文字颜色),font=ttfont)#文字摆放位置,文字,颜色
im.show()

Python PIL模块笔记的更多相关文章

  1. python日志模块笔记

    前言 在应用中记录日志是程序开发的重要一环,也是调试的重要工具.但却很容易让人忽略.之前用flask写的一个服务就因为没有处理好日志的问题导致线上的错误难以察觉,修复错误的定位也很困难.最近恰好有时间 ...

  2. python PIL模块学习

    PIL PIL:Python Imaging Library.对于图像识别,大量的工作在于图像的处理,处理效果好,那么才能很好地识别,因此,良好的图像处理是识别的基础. PIL安装 安装推荐别人的吧, ...

  3. python系统性能模块笔记

    内存信息psutil.cpu_times()            使用cpu_times方法获取cpu完整信息,需要显示所有逻辑cpu信息(指定变量percpu=True)psutil.cpu_ti ...

  4. centos 安装python PIL模块

    转载:https://www.cnblogs.com/ccdc/p/4069112.html 1.安装 使用yum安装缺少类库: #尤其重要,否则会报错 yum install python-deve ...

  5. python logging模块笔记

    1 ) 给logger定制了两个日志级别INFO和DEBUG,分别通过filehandler添加不同输出到不同文件,但如何让DEBUG里只有DEBUG的信息? 答案:可重写DEBUG对应的Fileha ...

  6. Python标准库笔记(11) — Operator模块

    Operator--标准功能性操作符接口. 代码中使用迭代器时,有时必须要为一个简单表达式创建函数.有些情况这些函数可以用一个lambda函数实现,但是对于某些操作,根本没必要去写一个新的函数.因此o ...

  7. Python标准库笔记(10) — itertools模块

    itertools 用于更高效地创建迭代器的函数工具. itertools 提供的功能受Clojure,Haskell,APL和SML等函数式编程语言的类似功能的启发.它们的目的是快速有效地使用内存, ...

  8. Python标准库笔记(9) — functools模块

    functools 作用于函数的函数 functools 模块提供用于调整或扩展函数和其他可调用对象的工具,而无需完全重写它们. 装饰器 partial 类是 functools 模块提供的主要工具, ...

  9. Python标准库笔记(8) — pprint模块

    struct模块提供了用于在字节字符串和Python原生数据类型之间转换函数,比如数字和字符串. Python版本: 2.x & 3.x 该模块作用是完成Python数值和C语言结构体的Pyt ...

随机推荐

  1. addEventListener在一个节点上添加多个相同的事件

    <button id='btn'>attachEvent</button> window.onload=function(){ var Obtn = document.getE ...

  2. jlink的SWD与JTAG下载模式的对应接线方法

     参考博客:http://blog.csdn.net/qq_26093511/article/details/59484249 (1)如果用jtag模式下载的话需要接线:          jlink ...

  3. 使用v-for循环写入html内容,每一项的数据的写入

    项目使用vue.js,在写某个dialog页面时,需要循环后台的数据(班级,班级学生名单,已选学生名单,发布时间,截止时间,答案显示等). 遇到的问题:循环绑定的值是相同的,而且改动一个值,其他ite ...

  4. Common-io,FileUtils工具类的使用

    package Cristin.Common.File; import org.apache.commons.io.FileUtils; import org.apache.commons.io.fi ...

  5. 完美解决百度网盘、浏览器下载限速问题proxyee-down(附带win破解版云盘)

    win版破解云盘 下载: <PanDownload> 使用文档: <PanDownload使用> Mac方法 限速.限速! 平时下载东西限速倒无所谓,遇到急一点的.盯着80km ...

  6. _spellmod_leech_spell

    comment  备注 spell 技能ID,玩家释放该技能时附带吸血效果 meetAura  产生吸血效果需要满足的光环ID,比如做一个空的光环,为寒冰箭吸血光环,则有些光环时候,寒冰箭会附带吸血效 ...

  7. Total Commander

    Total Commander 是一款应用于 Windows 平台的文件管理器 ,它包含两个并排的窗口,这种设计可以让用户方便地对不同位置的“文件或文件夹”进行操作,例如复制.移动.删除.比较等,相对 ...

  8. HTML5语义化

    转载自:https://www.cnblogs.com/fliu/articles/5244866.html 1.什么是HTML语义化? 用合理.正确的标签来展示内容,比如h1~h6定义标题,便于开发 ...

  9. leecode第四十三题(字符串相乘)

    class Solution { public: string multiply(string num1, string num2) { ";//特殊情况 ] == ] == ') retu ...

  10. leecode第十六题(最接近的三数之和)

    class Solution { public: void quick_order(vector<int>& num, int star, int en)//快排 { int st ...