Python 第三方库:Pillow(主流的图像处理库)
Pillow 是 Python 中最主流的图像处理库,属于 PIL(Python Imaging Library)的分支和增强版本。它提供了对多种图像格式的支持与操作功能,可以轻松完成图像打开、裁剪、缩放、旋转、滤镜、绘图、文字添加、格式转换等图像处理任务。
安装 Pillow 库:
pip install pillow
常见应用场景:
(1)图像格式转换(如 PNG 转 JPEG)。
(2)图像缩放、裁剪、旋转、翻转等几何变换。
(3)图像滤镜、边缘检测、模糊、锐化等处理。
(4)图像合成与拼接。
(5)添加文字、水印或绘制图形。
(6)批量图像处理与自动化图像任务。
◆ ◆ ◆
核心概念
1、Image 模块
图像加载与保存的核心类。
2、ImageDraw
用于绘制线条、矩形、圆形等图形。
3、ImageFont
用于设置绘图字体(常结合 ImageDraw 使用)。
4、ImageFilter
图像滤镜(模糊、边缘增强等)。
5、颜色模式
如 RGB、RGBA、L(灰度)、CMYK 等。
6、文件格式支持
包括 JPEG、PNG、GIF、BMP、TIFF 等。
◆ ◆ ◆
应用举例
例 1:打开、查看与保存图像
from PIL import Image
img = Image.open("example.png")img.show() # 使用默认图像查看器打开img.save("output.jpg") # 转换格式并保存
例 2:图像缩放与裁剪
from PIL import Image
img = Image.open("example.jpg")resized = img.resize((200, 200))cropped = img.crop((50, 50, 250, 250)) # (left, upper, right, lower)resized.save("resized.jpg")cropped.save("cropped.jpg")
例 3:旋转与翻转
from PIL import Image
img = Image.open("example.jpg")rotated = img.rotate(45) # 逆时针旋转flipped = img.transpose(Image.FLIP_LEFT_RIGHT)rotated.save("rotated.jpg")flipped.save("flipped.jpg")
例 4:添加文字水印
from PIL import Image, ImageDraw, ImageFont
img = Image.open("example.jpg")draw = ImageDraw.Draw(img)font = ImageFont.truetype("arial.ttf", 36)draw.text((50, 50), "Watermark", font=font, fill="white")img.save("with_text.jpg")
例 5:使用滤镜处理图像
from PIL import Image, ImageFilter
img = Image.open("example.jpg")blurred = img.filter(ImageFilter.GaussianBlur(radius=2))sharpened = img.filter(ImageFilter.SHARPEN)blurred.save("blurred.jpg")sharpened.save("sharpened.jpg")
◆ ◆ ◆
常用函数速览
Image.open(fp)
打开图像文件。
参数:
fp:文件路径或类文件对象
返回:Image 对象
Image.save(fp, format=None)
保存图像到文件。
参数:
fp:保存路径
format:保存格式(可选,如 "JPEG"、"PNG")
返回:无
Image.resize(size)
按给定尺寸缩放图像。
参数:
size:二元组 (width, height)
返回:新的 Image 对象
Image.crop(box)
裁剪图像区域。
参数:
box:四元组 (left, upper, right, lower)
返回:裁剪后的 Image 对象
Image.rotate(angle, expand=False)
旋转图像。
参数:
angle:角度(逆时针)
expand:是否自动扩展图像边界
返回:旋转后的图像
Image.filter(filter)
对图像应用滤镜。
参数:
filter:如 ImageFilter.BLUR, ImageFilter.SHARPEN
返回:处理后的图像
ImageDraw.Draw(image)
创建可在图像上绘图的对象。
参数:
image:一个 Image 实例
返回:ImageDraw 对象
ImageFont.truetype(font, size)
加载指定字体文件。
参数:
font:字体文件路径,如 "arial.ttf"
size:字体大小
返回:ImageFont 对象
Image.convert(mode)
转换图像模式(如 RGB → L)。
参数:
mode:目标模式(如 "RGB"、"L")
返回:转换后的图像
Image.show()
使用系统默认应用程序打开图像。
返回:无
◆ ◆ ◆
补充说明
1、Pillow 图像处理中的坐标系原点在左上角,向右为 x 增大,向下为 y 增大。
2、图像模式:
"RGB":彩色图像
"RGBA":含透明度
"L":灰度图像
"1":二值图像
"P":调色板图像
3、滤镜常用示例(位于 PIL.ImageFilter 模块中):
BLUR、CONTOUR、DETAIL、EDGE_ENHANCE、EMBOSS、FIND_EDGES、SHARPEN、SMOOTH 等等。

“点赞有美意,赞赏是鼓励”
更多推荐
所有评论(0)