python PIL相关操作

项目中需要用python生成二维码,这里记录一下相关PIL相关操作。

RGBA问题:

  需要将图片A粘贴到图片B上,之前没有注意透明度问题,A的背景是透明的,粘贴到B上后,A的周围是黑的。后来才发现是PIL的Image模块,调用open打开文件以后,需要convert转换为‘RGBA’模式,R:red G:green B:blue A:Alpha 色彩空间 透明度,设置一下图片的透明度即可。

图片的粘贴,文字的添加需要调用ImageDraw模块,首先打开背景图

img = Image.open(‘./test.png‘).convert(‘RGBA‘)
drawImg = ImageDraw.Draw(img) 

图片A粘贴到图片B上

Image.resize()函数来调整图片A的大小,然后用paste将A粘贴到B上,qr_bos为A在B上的坐标,(右上,左上,右下,左下)

drawImg.paste(img.resize((self.qr_box[2] - self.qr_box[0], self.qr_box[3] - self.qr_box[1])), self.qr_box)

在图片B上添加文字

# 获取图片宽度,字体的高度
t_p_w_3, t_p_h_3 = (self.width, 23)
# 加载字体
t_3_font = ImageFont.truetype(‘msyh.ttf‘, 23)
# 获取这段文字在图片上的长宽
t_p_w_3_t, t_p_h_3_t = drawBack.textsize(self.content_3, t_3_font)
#居中
drawBack.text(((t_p_w_3 - t_p_w_3_t) / 2, (t_p_h_3 - t_p_h_3_t) / 2), self.content_3,fill=‘#535256‘, font=t_3_font)

原文地址:https://www.cnblogs.com/yuanhuikai/p/9029930.html

时间: 2024-10-18 12:51:54

python PIL相关操作的相关文章

python文件相关操作

Python文件相关操作 打开文件 打开文件,采用open方法,会将文件的句柄返回,如下: f = open('test_file.txt','r',encoding='utf-8') 在上面的代码中,open()方法进行打开文件等相关操作,open()方法其中第一个参数是要打开的文件的文件路径,第二个参数是对要打开文件要执行的权限,第三个参数是文件采用字符编码. 而open()方法返回的内容叫做文件句柄.我们可以打印返回的文件句柄来看下: f = open('test_file.txt','r

python集合相关操作

集合相关操作 集合是一个无序的,不重复的数据组合,它有着两个主要作用:去重以及关系测试. 去重指的是当把一个列表变成了集合,其中重复的内容就自动的被去掉了 关系测试指的是,测试两组数据之间的交集.差集.并集等关系. 去重测试代码如下: # 创建一个列表 -- 里面存在一些重复值 test_list = [1,2,3,4,2,2,3,4,3,2,3,4] # 利用集合将列表中重复的内容去掉 test_list = set(test_list) # 打印测试并且查看test_list 被赋予新值后的

python 集合相关操作

集合相关操作 集合是一个无序的,不重复的数据组合,它有着两个主要作用:去重以及关系测试. 去重指的是当把一个列表变成了集合,其中重复的内容就自动的被去掉了 关系测试指的是,测试两组数据之间的交集.差集.并集等关系. 去重测试代码如下: # 创建一个列表 -- 里面存在一些重复值 test_list = [1,2,3,4,2,2,3,4,3,2,3,4] # 利用集合将列表中重复的内容去掉 test_list = set(test_list) # 打印测试并且查看test_list 被赋予新值后的

python 字典相关操作

字典 字典的增删改查 字典的创建方式: # 创建字典类型 info = { 'name':'李白', 'age':'25', 'sex':'男' } msg = { 'user01':'Longzeluola', 'user02':'xiaozemaliya', 'user03':'cangjingkong' } 字典存储数据的时候,采取的是key:value的形式,是一组无序的存储.在需要的时候通过key就能够快速的获取value. msg = { 'user01':'Longzeluola'

python字符串相关操作

字符串搜索相关搜索指定字符串,没有返回-1:str.find('t')指定起始位置搜索:str.find('t',start)指定起始及结束位置搜索:str.find('t',start,end)从右边开始查找:str.rfind('t')搜索到多少个指定字符串:str.count('t')上面所有方法都可用index代替,不同的是使用index查找不到会抛异常,而find返回-1字符串判断相关是否以start开头:str.startswith('start')是否以end结尾:str.ends

python 字符串相关操作

1.字符串查找name = "today is a\t beautiful day" print(name.capitalize()) # 首字母大写 print(name.center(40,'-')) # 居中显示,不足的时候填充'-' print(name.count('a',4)) #统计某字符出现的次数 print(name.endswith('a')) #判断是否以给定的字符结尾 ,是返回True,否则返回False print(name.startswith('t'))

python字符串格式化输出及相关操作代码举例

字符串的格式化 Python 支持格式化字符串的输出 .尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中.在   Python 中,字符串格式化使用与 C 中 sprintf 函数一样的语法. 在python中格式化输出字符串通用的形式为: 格式标记字符串 % 要输出的值组 其中,左边部分的"格式标记字符串"可以完全和c中的一致.右边的"值组"如果有两个及以上的值则需要用小括号括起来,中间用逗号隔开. 重点来看左

【Python】入门学习六 列表及其相关操作

我们在生活中常常会列出自己的List,比如购物清单,待办事项等.编程来源于生活,在Python,列表也是Python中常见的数据类型之一.下面讲述列表的相关操作. 1.创建列表 列表可以包含Python能存储的任何类型的数据,包括数字.字符串.变量.甚至其他列表.列表中的元素可以是不同类型. ①列表名 = [ ] 创建一个空列表,随后再更新列表里的元素值. ②也可以在创建列表的同时赋值.列表名 = [元素1, 元素2, ... ]. 2.访问列表中的元素及列表“分片”操作 列表中的元素都有自己的

Selenium2+python自动化40-cookie相关操作【转载】

前言 虽然cookie相关操作在平常ui自动化中用得少,偶尔也会用到,比如登录有图形验证码,可以通过绕过验证码方式,添加cookie方法登录. 登录后换账号登录时候,也可作为后置条件去删除cookie然后下个账号登录 一.获取cookies:get_cookies() 1.获取cookies方法直接用:get_cookies() 2.先启动浏览器,获取cookies,打印出来发现是空:[] 3.打开博客首页后,重新获取cookies,打印出来,就有值了 二.登录后的cookies 1.先登录博客