pillow是python中的处理图像的一个库。
首先我们需要了解以下PIL,它是python2中非常强大的图像处理标准库,但只支持到python2.7。
Pillow是在PIL的基础上创建了兼容的版本,支持最新Python3.x,又加入了许多新特性。
pip install pillow
from PIL import Image
函数 | 说明 |
---|---|
Image.new() | 创建新图片,例如:im = Image.new(‘RGB’, (160, 90), (23, 123, 223)) |
open(‘文件’) | 从文件加载图像 |
im.format | 标识图像的来源 |
im.size | 包含宽度和高度(以像素为单位)的 2 元组 |
im.mode | 图像中波段的数量和名称,以及像素类型和深度 |
im.show() | 显示图像 |
im.save(‘文件名’) | 保存图像 |
im.crop() | 控制图像区域,例如:im2 = im.crop(box=(0, 0, 1000, 2000)) |
im.paste() | 粘贴()内到()外上 |
im.resize() | 根据元组给出新的大小 |
im.rotate() | 逆时针旋转 |
im.transpose() | 围绕其水平或垂直轴翻转图像 |
im.convert() | 颜色变换,例如:im_l = im.convert(‘L’) |
典型的图像模式
模式 | 解释 |
---|---|
1 | 1位像素,黑白,每字节存储一个像素 |
L | 8位像素,黑白 |
P | 8位像素,使用调色板映射到任何其他模式 |
RGB | 3x8位像素,真彩 |
RGBA | 4x8位像素,带透明蒙版的真彩 |
CMYK | 4x8位像素,分色 |
YCbCr | 3x8位像素,彩色视频格式 |
LAB | 3x8位像素,L* a* b颜色空间 |
HSV | 3x8位像素,色相,饱和度,值颜色空间 |
T | 32位有符号整数像素 |
F | 32位浮点像素 |
# 创建一张新图片
from PIL import Image
image = Image.new('RGB', (160, 90), (23, 123, 223))
image.show()
# 加载图片
image = Image.open('static/蒲公英.png')
# 打开图片
image.show()
图片会自动打开:
# 查看图片大小
>>> print(image.size)
(1920, 1200)
# 获取模式
>>> print(image.mode)
RGB
模式转换
print(image.mode)
image.show()
image1 = image.convert('1')
print(image1.mode)
image1.show()
blog.csdnimg.cn/ec80f75d51f541ffb15770da6ab6d6ba.png)
# 文件格式
>>> print(image.format)
PNG
#详细信息
>>> print(image.info)
{}
# 修改图片尺寸
image1 = image.resize((image.size[0] // 7, image.size[1] // 7))
image1.show()
# 裁剪图片
image2 = image.crop(box=(0, 0, 1000, 2000)) # 左、上、右、下
image2.show()
# 旋转图片
image2 = image.rotate(45) # 逆时针
image2.show()
# 添加水印
paste_image = Image.open('static/二维码.png')
paste_image = paste_image.resize((image.size[0] // 7, image.size[1] // 5))
image.paste(paste_image) # 默认左上角
image.show()
position = (image.size[0] - paste_image.size[0], image.size[1] - paste_image.size[1])
image.paste(paste_image,position)
image.show() # 右下