✨✨✨
感谢优秀的你打开了小白的文章
“希望在看文章的你今天又进步了一点点,离美好生活更近一步!”
目录
往期回顾
前言
基本函数应用
应用实例一
应用实例二
图像的基本处理(一) | (1条消息) 图像基本处理(一)_am_student的博客-CSDN博客 |
图像的基本处理(二) | (1条消息) 图片的基本处理(二)_am_student的博客-CSDN博客 |
图像的基本处理(三) | (1条消息) 图像的基本处理(三)_am_student的博客-CSDN博客 |
图像的基本处理(四) | (1条消息) 学完这些图像处理,我拿去给女友修了图..._am_student的博客-CSDN博客 |
ImageDraw 模块实现了绘图功能,可以通过创建图片的方式来绘制 2D 图像;还可以在 原有的图片上进行绘图,已达到修饰图片或对图片进行注释的目的。
在 ImageDraw 模块绘图时需要首先创建一个 ImageDraw.Draw 对象,并且提供指向文件 的参数。然后引用创建的 Draw 对象方法进行绘图。最后保存或直接输出绘制的图像。
drawObject=ImageDraw.Draw(black)
(1)绘制直线
drawObject.line([x1,y1,x2,y2],fill = None,width = 0,joint = None )
表示以(x1,y1)为起始点,以(x2,y2)为终止点画一条直线。[x1,y1,x2,y2]也可以写为 (x1,y1,x2,y2)、[(x1,y1),(x2,y2)]等;fill 用于设置指定线条颜色;width 设置线条的宽度;joint 表示一系列线之间的联合类型。它可以是“曲线”。
(2)绘制圆弧
drawObject.arc([x1,y1,x2,y2],start,end,fill = None,width = 0 )
在左上角坐标为(x1,y1),右下角坐标为(x2,y2)的矩形区域内,满圆 O 内,以 start 为起始角度,以 end 为终止角度,截取圆 O 的一部分圆弧并画出来。如果[x1,y1,x2,y2]区域不是正方形,则在该区域内的最大椭圆中根据角度截取片段。参数 fill 和 width 与 line 方法相同。
(3)绘制椭圆
drawObject.ellipse([x1,y1,x2,y2],fill = None,outline = None,width = 0 )
用法同 arc 类似,用于画圆(或者椭圆)。outline 表示只规定圆的颜色。
(4)绘制弦用法同 arc 类似,用于画圆中从 start到end 的弦。
drawObject.chord([x1,y1,x2,y2],start,end,fill = None,outline = None,width = 0 )
fill 表示弦与圆弧之间空间用指定颜 色填满,设置为 outline 表示只规定弦线的颜色。
(5)绘制扇形用法同 elipse 类似,用于画起止角度间的扇形区域。
drawObject.pieslice([x1,y1,x2,y2],start,end,fill = None,outline = None,width = 0 )
fill 表示将扇形区域用指定颜色填 满,设置为 outline 表示只用指定颜色描出区域轮廓。
(6)绘制多边形根据坐标画多边形,
drawObject.polygon([x1,y1,x2,y2,....],fill = None,outline = None )
Python 会根据第一个参量中的(x,y)坐标对,连接出整个图形。 fill 表示将多边形区域用指定颜色填满,outline 只用于设置指定颜色描出区域轮廓。
(7)绘制矩形
drawObject.rectangle([x1,y1,x2,y2],fill = None,outline = None,width = 0 )
在指定的区域内画一个矩形,(x1,y1)表示矩形左上角的坐标,(x2,y2)表示矩形右 下角的坐标。fill 用于将矩形区域颜色填满,outline 用于描出区域轮廓。
(8)绘制文字
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'(从上到下)。
(9)绘制点给定坐标处绘制点(单个像素)。
drawObject.point(xy,fill = None )
from PIL import Image,ImageDraw,ImageFont
#创建一幅白色背景的图像
img=Image.new('RGB',(300,300),'white')
#绘制一个矩形
draw_obj=ImageDraw.Draw(img)
draw_obj.rectangle((50,50,280,200),fill='pink',outline='green')
font=ImageFont.truetype('SIMLI.TTF',20)
draw_obj.text((120,120),'我爱你♥',font=font,fill='red')
img.show()
结果展示:
from PIL import Image,ImageDraw
img=Image.open('lena.jpg')
width,height=img.size
#创建绘图对象
draw_obj=ImageDraw.Draw(img)
draw_obj.arc((0,0,width-1,height-1),0,360,fill='blue')
img.save('circle.jpg')
结果展示:
代码实例可以关注公众号获取: