Python PIL:探索图像处理的无限可能

Python PIL:探索图像处理的无限可能

***本文由AI辅助生成***

本文展示一些常见的和重要的Pillow用法,这些例子几乎涵盖了图像处理的基本需求。

安装Pillow

bash 复制代码
pip install pillow

基础操作

读取和显示图像
python 复制代码
from PIL import Image

# 加载图像
img = Image.open('image.jpg')

# 显示图像
img.show()  # 效果和双击打开图片一样,程序执行结束时自动关闭图片

# 获取图像信息
print(f"Image Size: {img.size}")	# (658, 1010)
print(f"Image Mode: {img.mode}")	# RGB
print(f"Image Format: {img.format}")	# JPEG

# 关闭图像
img.close()
文件保存和格式转换
python 复制代码
# 保存图像为PNG格式
img.save("output.png", format="PNG")

# 转换并保存为JPEG格式
img = img.convert("RGB")
img.save("output.jpeg", format="JPEG")
裁剪
python 复制代码
# 裁剪 (left, top, right, bottom)
box = (100, 100, 400, 400)
region = img.crop(box)

region.show()
旋转和翻转
python 复制代码
# 逆时针旋转 45 度
rotated = img.rotate(45)

# 左右翻转
flipped = img.transpose(Image.Transpose.FLIP_LEFT_RIGHT)

# 上下翻转
flipped = img.transpose(Image.Transpose.FLIP_TOP_BOTTOM)
调整大小
python 复制代码
# 缩放到指定宽度和高度
width, height = 800, 600
resized = img.resize((width, height))

# 等比例缩放
ratio = 0.5
resized = img.resize((int(ratio*img.width), int(ratio*img.height)))
改变图像颜色
python 复制代码
# 转为黑白
bw = img.convert("L")

# RGB 到 CMYK
cmyk = img.convert("CMYK")
粘贴另一个图像

可用作 图片水印、小贴图 等

python 复制代码
# 创建一个空白图像 new(mode, size, color)
bg = Image.new('RGB', (800, 600), 'white')

# 将原图像粘贴到背景图像的中心
x = (bg.width - img.width) // 2
y = (bg.height - img.height) // 2
bg.paste(img, (x, y))
绘制文本和形状

可用作 图片标记 等

python 复制代码
from PIL import ImageDraw, ImageFont

draw = ImageDraw.Draw(img)

# 设置字体
font = ImageFont.truetype("arial.ttf", size=30)

# 在图像上写入文字
draw.text((10, 10), "Hello World!", fill=(255, 0, 0), font=font)

# 画一个矩形
draw.rectangle([100, 100, 300, 300], outline="red", width=5)

高级功能

使用滤镜效果
python 复制代码
# 模糊效果
blurred = img.filter(ImageFilter.BLUR)

# 锐化效果
sharpened = img.filter(ImageFilter.SHARPEN)
图像增强
python 复制代码
from PIL import ImageEnhance

enhancer = ImageEnhance.Color(img)
enhanced_color = enhancer.enhance(2)

enhancer = ImageEnhance.Brightness(img)
brighter = enhancer.enhance(1.5)

以上只是Pillow库的一部分功能,实际上还有许多其他高级特性和细节需要探索,比如支持多种图像格式、多线程图像处理等等。Pillow是处理图像的强大工具,值得深入研究以满足更多具体的需求。

相关推荐
新缸中之脑5 分钟前
在树莓派上运行OpenClaw
人工智能
ccLianLian8 分钟前
深度学习·GAN系列
人工智能·深度学习·生成对抗网络
不一样的故事12610 分钟前
软件测试在未来10年
大数据·网络·人工智能·安全
Techblog of HaoWANG11 分钟前
目标检测与跟踪(13)-- Jetson Xavier NX / Orin NX 松灵机械臂PiPer SDK、ROS功能包、官方文档解读
人工智能·目标检测·计算机视觉·机械臂·智能机器人·松零·piper
这张生成的图像能检测吗11 分钟前
(论文速读,小白入门经典学习读物)基于DAE-BiLSTM的主传动轴轴承故障诊断方法
人工智能·深度学习·故障诊断·长短时记忆网络
Oflycomm11 分钟前
高通携手Wayve:推动端到端AI自动驾驶迈向量产时代
人工智能·机器学习·自动驾驶·高通·wifi模块·qogrisys
科学创新前沿12 分钟前
从原子结构到宏观性能:机器学习驱动的固态电解质设计与高通量筛选
人工智能·python·深度学习·机器学习·固态电池·固态电解质
qq_4523962313 分钟前
【模型手术室】第七篇:模型量化 —— 从 FP16 到 4-bit 的极限压缩与性能翻倍
人工智能·python·ai
Python量化投资、代码解析与论文精读15 分钟前
R语言-机器学习生态风险评估RF-SHAP分析
人工智能·python·深度学习
Ulyanov22 分钟前
基于Tkinter/ttk的现代化Python GUI开发全攻略:从布局设计到视觉美化(三)
开发语言·python·gui·tkinter·ttk