pillow学习5

ImageEnhance 模块

内置的 ImageEnhance 模块中包含了多个用于增强图像效果的函数,主要用来调整图像

的色彩、对比度、亮度和清晰度等,感觉上和调整电视机的显示参数一样。

在模块 ImageEnhance 中,所有的图片增强对象都实现一个通用的接口。这个接口只包

含如下一个方法。

方法 enhance()会返回一个增强的 Image 对象,参数 factor 是一个大于 0 的浮点数,1 表

示返回原始图片。

当在 Python 程序中使用模块 ImageEnhance 增强图像效果时,需要首先创建对应的增强

调整器,然后调用调整器输出函数,根据指定的增强系数(小于 1 表示减弱,大于 1 表示增

强,等于 1 表示原图不变)进行调整,最后输出调整后的图像。

在模块 ImageEnhance 中,常用的内置函数如下所示:

(1)ImageEnhance.Color(image ) :功能是调整图像色彩平衡,相当于彩色电视机的色彩调整,实现了上边提到的接口的enhance 方法。

(2)ImageEnhance.Contrast(image ):功能是调整图像对比度,相当于彩色电视机的对比度调整。

(3)ImageEnhance.Brightness(image ):功能是调整图像亮度。

(4)ImageEnhance.Sharpness(image ):功能是调整图像清晰度,用于锐化/钝化图片。

锐化操作的 factor 是 0~2 之间的一个浮点数。当 factor=0 时,返回一个模糊的图片对象;当 factor=2 时,返回一个锐化的图片对象;当 factor=1 时,返回原始图片对象。

锐化(Sharpening):

锐化是一种图像处理技术,旨在增强图像中的细节和边缘,使它们看起来更清晰和更突出。

锐化通过增强图像中像素之间的对比度来实现,从而使边缘更加清晰。这通常会使图像看起来更加清晰。

锐化通常用于强调图像中的细节,使图像看起来更加清晰和有视觉冲击力。
钝化(Blurring):

钝化是一种图像处理技术,旨在减少图像中的细节和边缘的清晰度,使其看起来更加模糊或柔和。

钝化通过模糊图像中的像素来实现,从而减少细节和边缘的清晰度。这通常用于柔化图像或减少噪点。

钝化可以用于减轻图像中的噪声、平滑皮肤纹理或创建艺术效果。

因此,锐化和钝化都是常见的图像处理技术,用于改变图像的外观和细节水平。选择使用哪种处理取决于您想要实现的效果以及图像的特定要求
ImageDraw 模块

ImageDraw 模块实现了绘图功能。可以通过创建图片的方式来绘制 2D 图像;还可以在原有的图片上进行绘图,已达到修饰图片或对图片进行注释的目的。

在 ImageDraw 模块绘图时需要首先创建一个 ImageDraw.Draw 对象,并且提供指向文件的参数。然后引用创建的 Draw 对象方法进行绘图。最后保存或直接输出绘制的图像。

python 复制代码
drawObject=ImageDraw.Draw(black)

绘制直线

表示以(x1,y1)为起始点,以(x2,y2)为终止点画一条直线。[x1,y1,x2,y2]也可以写为(x1,y1,x2,y2)、[(x1,y1),(x2,y2)]等;fill 用于设置指定线条颜色;width 设置线条的宽度;joint表示一系列线之间的联合类型。它可以是"曲线"。

python 复制代码
drawObject.line([x1,y1,x2,y2],fill = None,width = 0,joint = None )

绘制圆弧

在左上角坐标为(x1,y1),右下角坐标为(x2,y2)的矩形区域内,满圆 O 内,以 start 为起始角度,以 end 为终止角度,截取圆 O 的一部分圆弧并画出来。如果[x1,y1,x2,y2]区域不是正方形,则在该区域内的最大椭圆中根据角度截取片段。参数 fill 和 width 与 line 方法相

同。

python 复制代码
drawObject.arc([x1,y1,x2,y2],start,end,fill = None,width = 0 )

绘制椭圆

python 复制代码
drawObject.ellipse([x1,y1,x2,y2],fill = None,outline = None,width = 0 )

绘制弦

python 复制代码
drawObject.chord([x1,y1,x2,y2],start,end,fill = None,outline = None,width = 0 )

用法同 arc 类似,用于画圆中从 start 到 end 的弦。fill 表示弦与圆弧之间空间用指定颜色填满,设置为 outline 表示只规定弦线的颜色。
绘制扇形

python 复制代码
drawObject.pieslice([x1,y1,x2,y2],start,end,fill = None,outline = None,width = 0 )

用法同 elipse 类似,用于画起止角度间的扇形区域。fill 表示将扇形区域用指定颜色填

满,设置为 outline 表示只用指定颜色描出区域轮廓。

绘制多边形
drawObject.polygon([x1,y1,x2,y2,...],fill = None,outline = None )

根据坐标画多边形,Python 会根据第一个参量中的(x,y)坐标对,连接出整个图形。

fill 表示将多边形区域用指定颜色填满,outline 只用于设置指定颜色描出区域轮廓。

绘制矩形

python 复制代码
drawObject.rectangle([x1,y1,x2,y2],fill = None,outline = None,width = 0 )

在指定的区域内画一个矩形,(x1,y1)表示矩形左上角的坐标,(x2,y2)表示矩形右

下角的坐标。fill 用于将矩形区域颜色填满,outline 用于描出区域轮廓。
绘制矩形

python 复制代码
drawObject.rectangle([x1,y1,x2,y2],fill = None,outline = None,width = 0 )

在指定的区域内画一个矩形,(x1,y1)表示矩形左上角的坐标,(x2,y2)表示矩形右

下角的坐标。fill 用于将矩形区域颜色填满,outline 用于描出区域轮廓。
绘制文字

python 复制代码
drawObject.text(position,text,fill = None,font = None,anchor = None,spacing = 0,
align ="left",direction = None,features = None,language = None )

在图像内添加文字 。其中参数 position 是一个二元组,用于指定文字左上角的坐标;text

表示要写入的文字内容;fill 表示文本的颜色;font 必须为 ImageFont 中指定的 font 类型;

spacing 表示行之间的像素数;align 表示位置"left","center"或"right";direction 表示文字的方向。它可以是'rtl'(从右到左),'ltr'(从左到右)或'ttb'(从上到下)。

python 复制代码
from PIL import Image, ImageDraw
img = Image.open("lena.jpg")
draw = ImageDraw.Draw(img)
width, height = img.size
draw.arc( (0, 0, width-1, height-1), 0, 360, fill='blue')
img.save("circle.jpg")

ImageFont 模块

ImageFont 的功能是实现对字体和字型的处理。比较常用的内置函数如下所示:

(1)load():从指定的文件中加载一种字体,该函数返回对应的字体对象。如果该函数运行

失败,那么将产生 IOError 异常。语法格式如下:

python 复制代码
ImageFont.load(文件名)

(2)load_path():和函数 load()一样,但是如果没有指定当前路径,就会从文件 sys.path 开

始查找指定的字体文件。语法格式如下:

python 复制代码
ImageFont.load_path(文件名)

(3)truetype():有两种定义格式。第 1 种格式的功能是加载一个 TrueType 或者 OpenType

字体文件,并且创建一个字体对象。在 Windows 系统中,如果指定的文件不存在,加载器就会顺便看看 Windows 的字体目录下它是否存在。语法格式如下:

python 复制代码
ImageFont.truetype(file,size)

第 2 种格式的功能是,加载一个 TrueType 或者 OpenType 字体文件,并且创建一个字体对象。通常的编码方式是"unic"(Unicode)、"symb"(MicrosoftSymbol)、"ADOB"

(Adobe Standard)、"ADBE"(Adobe Expert)和"armn"(Apple Roman)。语法格式如下:

python 复制代码
ImageFont.truetype(file,size,encoding=value)

(4)load_default():功能是加载一种默认的字体。

python 复制代码
ImageFont.load_default()

(5)getsize():返回给定文本的宽度和高度,返回值是一个二元组。具体语法格式如下:

python 复制代码
ImageFont.getsize()
相关推荐
牧子川2 小时前
009-Transformer-Architecture
人工智能·深度学习·transformer
covco3 小时前
矩阵管理系统指南:拆解星链引擎的架构设计与全链路落地实践
大数据·人工智能·矩阵
沪漂阿龙3 小时前
AI大模型面试题:支持向量机是什么?间隔最大化、软间隔、核函数、LinearSVC 全面拆解
人工智能·算法·支持向量机
lifewange3 小时前
AI编写测试用例工具介绍
人工智能·测试用例
陕西字符3 小时前
2026 西安 豆包获客优化技术深度解析:企来客科技 AI 全域获客系统测评
大数据·人工智能
掘金安东尼3 小时前
GGUF、GPTQ、AWQ、EXL2、MLX、VMLX...运行大模型,为什么会有这么多格式?
人工智能
新知图书3 小时前
市场分析报告自动化生成(使用千问)
人工智能·ai助手·千问·高效办公
无心水3 小时前
【Hermes:安全、权限与生产环境】38、Hermes Agent 安全四层纵深:最小权限原则从理论到落地的完全指南
人工智能·安全·mcp协议·openclaw·养龙虾·hermes·honcho
旦莫3 小时前
AI驱动的纯视觉自动化测试:知识库里应该积累什么知识内容
人工智能·python·测试开发·pytest·ai测试
dfsj660114 小时前
第四章:深度学习革命
人工智能·深度学习