python图片处理库PIL的简单使用
一、安装
sudo pip3 install pillow
二、简单使用
# coding:utf-8 from PIL import Image,ImageDraw,ImageFont from io import BytesIO #打开图片 img = Image.open('图片名')#从本地磁盘打开 img = Image.open(BytesIO(文件二进制数据)) #从内存中读取图片 #重新设置图片像素大小 img = img.resize((宽, 高)) #查看图片的宽和高 img.size#(宽,高)元组 img.width #宽 img.heigth #高 #查看图片中某一个点的rgb值(颜色) img.getpixel((x,y))#以图片左上角为坐标原点,x和y表示该点的坐标 #如果图片进行了二值化处理,那么得到的就是那两个值之一 #修改某一个点的rgb值 img.putpixel((x,y),(rgb值)) #查看图片中的颜色统计,返回列表[(count,(rgb值))...] img.getcolors() #画笔工具: draw = ImageDraw.Draw(img) draw.line([(起点位置),(终点位置),(颜色)]) #绘线 draw.poin((位置),(颜色)) #绘点 font = ImageFont.truetype(字体,字号大小) #选择该系统中已有的字体 text = '需要绘制的字符' font_width,font_height = font.getsize(text) #获得当前这个字符的宽和高 draw.text((位置),text,font=font,fill=(颜色)) #绘制字符 #图片灰度化和二值化处理 img2 = img.convert('L') #灰度化处理 threshold=127 #临界值,视具体情况而定 img3 = img2.point(lambda x:0 if x < threshold else 1,'1')#二值化处理 # 创建一个画布 new_img = Image.new('RGB',(宽,高),(255,255,255)) # 裁剪图片 crop_img = img3.crop((左,上,右,下))#以图片的左上角为坐标原点,左和右表示的是裁切线的横坐标,上和下表示的裁切线的纵坐标,比如完整裁剪:img.crop(0,0,宽,高) # 粘贴图片 new_img.paste(crop_img,(x,y))#x和y表示粘贴左上角位置的横纵坐标 #保存图片 new_img.save('图片名')#存储到本地磁盘 buf = BytesIO() new_img.save(buf,'png')#存储到内存,第二个参数为图片格式 binary_data = buf.getvalue()#获取内存中图片的二进制数据