Pillow简单介绍

发布于:2025-03-22 ⋅ 阅读:(14) ⋅ 点赞:(0)

一、介绍

Pillow 是 Python 中一个功能强大且易用的图像处理库,是经典库 PIL(Python Imaging Library)的现代分支,它广泛用于图像打开、编辑、保存和格式转换等操作。

二、功能介绍

1. 图像读写‌

支持多种格式(JPEG、PNG、GIF、BMP、TIFF 等),并可处理不同颜色模式(RGB、CMYK 等)。

from PIL import Image
image = Image.open("input.jpg")  # 打开图像
image.save("output.png")         # 保存为 PNG 格式

‌2. 图像处理‌

‌1)调整尺寸

from PIL import Image
catIm = Image.open('zophie.png')
width, height = catIm.size
quartersizedIm = catIm.resize((int(width / 2), int(height / 
quartersizedIm.save('quartersized.png')
svelteIm = catIm.resize((width, height + 300))
svelteIm.save('svelte.png')

2)旋转和翻转图像

from PIL import Image
catIm = Image.open('zophie.png')
catIm.rotate(90).save('rotated90.png')
catIm.rotate(180).save('rotated180.png')
catIm.rotate(270).save('rotated270.png')

3)裁切

裁剪不是在原图上发生的,也就 是说,原始的Image对象原封不动,crop()方法返回⼀个新的 Image对象。

from PIL import Image
catIm = Image.open('zophie.png')
croppedIm = catIm.crop((335, 345, 565, 560))  # 定义裁剪区域 (左, 上, 右, 下)
croppedIm.save('cropped.png')

4)滤镜效果

from PIL import ImageFilter
blurred = image.filter(ImageFilter.BLUR)  # 模糊滤镜

5)生成缩略图

from PIL import Image

# 打开图像并调整尺寸
image = Image.open("photo.jpg")
thumbnail_size = (200, 200)
image.thumbnail(thumbnail_size)

# 保存缩略图
image.save("thumbnail.jpg", "JPEG")

6)添加水印

from PIL import Image, ImageDraw, ImageFont

def add_watermark(image_path, output_path, text):
    img = Image.open(image_path)
    draw = ImageDraw.Draw(img)
    font = ImageFont.truetype('arial.ttf', 66)

    # 计算文字尺寸
    bbox = draw.textbbox((0, 0), text, font=font)
    text_width, text_height = bbox[2] - bbox[0], bbox[3] - bbox[1]

    draw.text(((img.width - text_width - 10), (img.height - text_height - 10)),
              text, font=font, fill=(255, 255, 255, 128))
    img.save(output_path)

add_watermark('input.jpg', 'watermarked.jpg', 'Copyright 2025')
print('Done')

3. 绘图功能‌

1)支持绘制几何图形和文字

from PIL import ImageDraw
draw = ImageDraw.Draw(image)
draw.rectangle((50, 50, 150, 150), fill="red")  # 画红色矩形
draw.text((50, 30), "Hello Pillow", fill="white")  # 添加文字

2)新建图像

from PIL import Image
im = Image.new('RGBA', (100, 200), 'purple')
im.save('purpleImage.png')
# 默认的颜⾊是不可见的⿊⾊(0, 0, 0, 0),因此第⼆个图像具有透明背景
im2 = Image.new('RGBA', (200, 200))   
im2.save('test.png')