Python PIL模块笔记
利用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模块笔记的更多相关文章
- python日志模块笔记
前言 在应用中记录日志是程序开发的重要一环,也是调试的重要工具.但却很容易让人忽略.之前用flask写的一个服务就因为没有处理好日志的问题导致线上的错误难以察觉,修复错误的定位也很困难.最近恰好有时间 ...
- python PIL模块学习
PIL PIL:Python Imaging Library.对于图像识别,大量的工作在于图像的处理,处理效果好,那么才能很好地识别,因此,良好的图像处理是识别的基础. PIL安装 安装推荐别人的吧, ...
- python系统性能模块笔记
内存信息psutil.cpu_times() 使用cpu_times方法获取cpu完整信息,需要显示所有逻辑cpu信息(指定变量percpu=True)psutil.cpu_ti ...
- centos 安装python PIL模块
转载:https://www.cnblogs.com/ccdc/p/4069112.html 1.安装 使用yum安装缺少类库: #尤其重要,否则会报错 yum install python-deve ...
- python logging模块笔记
1 ) 给logger定制了两个日志级别INFO和DEBUG,分别通过filehandler添加不同输出到不同文件,但如何让DEBUG里只有DEBUG的信息? 答案:可重写DEBUG对应的Fileha ...
- Python标准库笔记(11) — Operator模块
Operator--标准功能性操作符接口. 代码中使用迭代器时,有时必须要为一个简单表达式创建函数.有些情况这些函数可以用一个lambda函数实现,但是对于某些操作,根本没必要去写一个新的函数.因此o ...
- Python标准库笔记(10) — itertools模块
itertools 用于更高效地创建迭代器的函数工具. itertools 提供的功能受Clojure,Haskell,APL和SML等函数式编程语言的类似功能的启发.它们的目的是快速有效地使用内存, ...
- Python标准库笔记(9) — functools模块
functools 作用于函数的函数 functools 模块提供用于调整或扩展函数和其他可调用对象的工具,而无需完全重写它们. 装饰器 partial 类是 functools 模块提供的主要工具, ...
- Python标准库笔记(8) — pprint模块
struct模块提供了用于在字节字符串和Python原生数据类型之间转换函数,比如数字和字符串. Python版本: 2.x & 3.x 该模块作用是完成Python数值和C语言结构体的Pyt ...
随机推荐
- LOJ6282 数列分块入门6(分块+暴力)
真是暴力 #include <cstdio> #include <algorithm> #include <cstring> #include <vector ...
- sql server数据库自动备份
SqlServer 数据库自动备份的两种解决方案 SQL Server中的角色(服务器级别和数据库级别角色) SqlServer服务器角色和数据库角色相关操作
- Python GIL(Global Interpreter Lock)
一.介绍 In CPython, the global interpreter lock, or GIL, is a mutex that prevents multiple native threa ...
- 51nod 1378 夹克老爷的愤怒(树型dp+贪心)
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1378 题意: 思路:要想放得少,尽量放在叶子节点处,叶子节点处点比较多. ...
- pymongo.errors.OperationFailure: Authentication failed.
mongoDB有不同的认证机制,3.0版本以后采用的是'MONGODB-CR', 之前的版本采用的是'MONGODB-CR'. 所以,以我的版本情况,显然应该用'SCRAM-SHA-1' from p ...
- 设计模式(二)策略模式(Strategy)
1.分析项目中变化部分与不变部分 2.多用组合,少用继承:用行为类组合,而不是行为的继承 案例: 第一步,把行为抽象为接口 package top.littlepage.designPattern.S ...
- Matlab中的基本数据类型介绍
Matlab中支持的数据类型包括: 逻辑(logical)字符(char)数值(numeric)元胞数组(cell)结构体(structure)表格(table)函数句柄(function handl ...
- 构造函数中用:base
如果person中有自己写的构造函数 则Student类的构造方法必须要加:base继承这个构造方法!因为默认的Student:base(空)构造方法已经被干掉了 构造方法的调用//base里的参数, ...
- 搞定'express' 不是内部或外部命令,也不是可运行的程序或批处理文件
1 -- 官方下nodejs,一路next完成, node -v 没问题 可以检测到版本号,node环境ok~ 2-- 本地 安装express :npm install express -g 检测 ...
- mkdir -p a/b 表示创建目录a,并创建目录a的子目录b
mkdir -p 命令解释 2016年01月13日 14:24:03 阅读数:742 mkdir -p a/b 表示创建目录a,并创建目录a的子目录b, 若不使用命令-p的话,想要达到同样的效果,需要 ...