一、官网
https://github.com/python-pillow/pillow
二、安装
pip install pillow
pip list
三、图像基本信息
from PIL import Image
image = Image.open("480.png")
# 图片基本信息
print(image.filename) # 图片名称
print(image.format) # 图片类型
print(image.mode)
print(image.size) # 图片尺寸
print(image.info)
# 取得某个点的RGB的值
print(image.getpixel((250,250)))
四、图像变换(convert)
from PIL import Image
image = Image.open("480.png")
# 1位像素图
image.convert("1").save("img1_pixels.png",quality=100)
# 8位灰度图
image.convert("L").save("imgL_pixels.png",quality=100)
# 8位彩图
image.convert("P").save("imgP_pixels.png",quality=100)
五、图像剪切(crop)
from PIL import Image
image = Image.open("480.png")
# 图片剪切:开始点X1,开始点Y1,结束点X2,结束Y2
image.Crop((240,30,300,240)).save("img_crop.png")
六、图像旋转(rotate)
from PIL import Image
image = Image.open("480.png")
image.rotate(30).save("img_rotate_30.png") # 逆时针旋转30度
image.rotate(-30).save("img_rotate_-30.png") # 顺时针旋转30度
image.rotate(30,Image.NEAREST,True).save("img_rotate_30_expand.png") # 逆时针旋转30度 不裁剪
七、调整大小(resize)
from PIL import Image
image = Image.open("480.png")
# 指定大小
img_resize = image.resize((200,200),Image.NEAREST)
img_resize.save("img_resize1.jpg")
# 宽高取半
img_resize = image.resize(int(image.width/2), int(image.height/2)),Image.NEAREST)
img_resize.save("img_resize2.jpg")
八、画图写字
from PIL import Image, ImageDraw, ImageFont
image = Image.open("490.jpg")
image_draw = ImageDraw.Draw(image) # 画笔
# 画线
image_draw.line((0,image.height,image.width,0),fill=(255,0,0),width=8)
# 矩形
image_draw.rectangle((100,100,200,200),fill=(0,255,0))
# 圆形
image_draw.ellipse((250,300,450,400),fill=(0,0,255))
# 写字
image_font = ImageFont.truetype("字体地址", size=48)
image_draw.multiline_text((0,0),"Pillow is good!",fill=(255,255,0),font=image_font)
image.save("img_edited.png")
九、批量文件处理
import os
import glob
from PIL import Image
files = glob.glob("./*.jpg")
for file in files:
img = Image.open(file)
# 宽高取半
img_resize = img.resize((int(img.width/2), int(img.height/2)))
ftitle,fext = os.path.splitext(file)
img_resize.save(ftitle + "half" + fext)