python PIL的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python PIL的问题相关的知识,希望对你有一定的参考价值。
我用im = Image.open("XXXX")读入了一张图片之后,获取了我想要的值,之后我要把这张图片删除掉,但是会报这张图片正在被使用中
有没有类似于im.close()之类的,将加载的图片资源释放掉
改用ImageFile从另一个open的图片文件中读到内存里面,读完也可以删除原文件
import ImageFile
fp = open("1.png", "rb")
p = ImageFile.Parser()
while 1:
s = fp.read(1024)
if not s:
break
p.feed(s)
im = p.close()
im.save("copy.jpg")本回答被提问者和网友采纳 参考技术B 试试del im
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)
以上是关于python PIL的问题的主要内容,如果未能解决你的问题,请参考以下文章