图像的基本处理(五)ImageDraw 模块的使用

✨✨✨

感谢优秀的你打开了小白的文章

希望在看文章的你今天又进步了一点点,离美好生活更近一步!🌈

 

目录

🚀往期回顾

🍉前言

🍉基本函数应用 

🍉应用实例一

🍉应用实例二 


🚀往期回顾

图像的基本处理(一)(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')

结果展示:

 

代码实例可以关注公众号获取:

  • 10
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

进步小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值