pillow
from PIL import Image, ImageFilter, ImageDraw
1.加载图片
# 1)加载图片,返回图片对象
# 图片地址可以是写绝对路径,也可以写相对路径
图片对象 = Image.open(图片地址)
# 2)显示图片
图片对象.show()

如果不知道图片路径那么选择图片按住shift+鼠标右击选择复制路径
- 相对路径:

2.使用滤镜
image1.filter(滤镜效果)
"""
滤镜效果:
ImageFilter.EMBOSS - 浮雕效果
ImageFilter.FIND_EDGES - 泼墨效果
ImageFilter.SHARPEN - 锐化滤波
ImageFilter.SMOOTH - 平滑滤波
ImageFilter.EDGE_ENHANCE_MORE - 边界增强滤波(程度更深)
ImageFilter.EDGE_ENHANCE - 边界增强滤波
ImageFilter.DETAIL - 细节滤波
ImageFilter.CONTOUR - 轮廓滤波(铅笔画)
ImageFilter.BLUR - 模 糊滤波
"""
这里只展示一个结果做例子
记得在首行导入ImageFilter
from PIL import Image,ImageFilter
3.图片的剪切
图片对象.crop(范围)
范围: (起点x坐标,起点y坐标, 终点x坐标,终点y坐标)

- 这里我简单说明一下坐标 前两个0,0 是图片左上角的位置 然后有两个(500,600) 500是向右延伸500的距离,600是向下延伸的距离(黑色部分就是超出图片范围的部分)
- 前两个是你起始点的坐标 后两个是你终止点坐标 都为正数

4.粘贴
图片对象1.paste(图片对象2,(x坐标,y坐标))
对象1是底部照片,对象2是粘贴的图片,(x,y)是粘贴到对象1的起始位置
5.镜像
图片对象.transpose(对称方式)
# Image.FLIP_LEFT_RIGHT - 左右镜像
# Image.FLIP_TOP_BOTTOM - 上下镜像
image3=image1.transpose(Image.FLIP_LEFT_RIGHT)
image3.show()

6.缩放
图片对象.thumbnail((宽度, 高度)) - 自动按比例缩放
7.创建空白图片
Image.new(模式,图片大小, 背景颜色)
empty = Image.new('RGB', (1000, 1000), (0, 255, 255))
这里比较容易理解 给大家附赠一个三原色网站:RGB颜色对照表 (oschina.net)
RGB:三原色 red,green,blue4

8.文字水印
- 记得导入ImageDraw
# 1.创建一个空的图片
Image,new(模式,图片大小,背景颜色)
# 2.创建font对象
ImageFont.truetype(字体文件,字体大小)
# 3.创建draw对象
ImageDraw.Draw(图片对象)
# 4.画文字
draw.text(坐标,文字,字体对象,文字颜色)

9.颜色块
# 1.创建一个图片对象(可以是空图片,也可以是已经存在的图片)
# 2.创建Draw对象
ImageDraw.Draw(图片对象) ////////// 这个步骤不能漏
# 3.设置点颜色
Draw对象.point(坐标,颜色)
*10. 带透明度的图片粘贴
from PIL import Image
layer1 = Image.open(背景图片地址).convert('RGBA')
layer2 = Image.open(带透明度的小图片的地址)
final1 = Image.new('RGBA', layer1.size, (255, 255, 0, 255))
final1 = Image.alpha_composite(final1, layer1)
final2 = Image.new('RGBA', layer1.size, (255,255,0,0))
final2.paste(layer2, (贴的位置的x坐标, 贴的位置的y坐标))
final1 = Image.alpha_composite(final1, final2)
final1.show()
验证码(随机数字和字母)
from PIL import Image,ImageDraw,ImageFont,ImageFilter
import random
import string
def rand_color():
return random.randint(0,255),random.randint(0,255),random.randint(0,255)
# 创建空白图片
image1 = Image.new('RGB',(160,90),(0,0,0))
draw = ImageDraw.Draw(image1)
# 随机颜色的颜色块
for x in range(0,161):
for y in range(0,91):
draw.point((x,y),rand_color())
# 导入字体
font= ImageFont.truetype('青呱石头体.ttf',30)
# 生成随机数
for x in range(6):
y= random.randint(20,70)
a=random.randint(0,1)
if a==0:
num = str(random.choice(string.ascii_letters))
else:
num = str(random.randint(0, 9))
draw = ImageDraw.Draw(image1)
draw.text((x*20,y), num, font=font, fill=(rand_color()))
image1.show()
- 结果

**
每天持续更新!!🤣
**
PIL图像处理详解:从滤镜到文字水印
本文介绍了使用Python的PIL库进行图像处理的各种操作,包括加载图片、应用滤镜、剪切图片、粘贴图片、创建镜像、缩放图片、创建空白图片、添加文字水印、绘制颜色块以及带透明度的图片粘贴。通过实例演示了每个功能的使用方法,是学习PIL图像处理的好资料。

1185

被折叠的 条评论
为什么被折叠?



