python ImageDraw类如何实现几何图形的绘制与文字的绘制

  介绍

这篇文章给大家分享的是有关python ImageDraw类如何实现几何图形的绘制与文字的绘制的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

python公益诉讼图像处理模块中的ImageDraw类支持各种几何图形的绘制和文本的绘制,如直线,椭圆、弧、弦、多边形以及文字等。

下面直接通过示例来进行说明:

# - *安康;编码:,UTF-8  - *安康;   ,   import  numpy  as  np   得到PIL  import 形象   得到PIL  import  ImageDraw   得到PIL  import  ImageFont   ,   ,   def  draw_test ():   ,   ,#生成深蓝色绘图画布=,,array  np.ndarray (480,, 640,, 3),, np.uint8)   ,   ,数组(:,,,,,0],=0   ,数组(:,,,,,1],=0   ,数组(:,,,,,2],=100   ,=,,image  Image.fromarray(数组)   ,   ,#创建绘制对象=,,draw  ImageDraw.Draw(图片)   ,   ,#绘制直线   ,draw.line(20日,20日,150年,150年),,& # 39;青色# 39;)   ,   ,#绘制矩形   ,draw.rectangle(100,, 200,, 300,, 400),, & # 39;黑色# 39;,,& # 39;红色# 39;)   ,   ,#绘制弧   ,draw.arc(100,, 200,, 300,, 400),, 0,, 180,, & # 39;黄色# 39;)   ,draw.arc(100,, 200,, 300,, 400),, -90,, 0,, & # 39;绿色# 39;)   ,   ,#绘制弦   ,draw.chord((350年,50岁,500年,200年),,0,,120,,& # 39;卡其色# 39;,,& # 39;橙色# 39;)   ,   ,#绘制圆饼图   ,draw.pieslice((350年,50岁,500年,200年),,-150,,-30,,& # 39;粉红色# 39;,,& # 39;深红色# 39;)   ,   ,#绘制椭圆   ,draw.ellipse(350,, 300,, 500,, 400),, & # 39;黄绿色# 39;,,& # 39;小麦# 39;)   ,#外切矩形为正方形时椭圆即为圆   ,draw.ellipse((550年,50岁,600年,100年),,& # 39;海绿色# 39;,,& # 39;天蓝色# 39;),   ,   ,#绘制多边形   ,draw.polygon(150,, 180,, 200, 180, 250, 120, 230, 90, 130, 100),, & # 39;橄榄# 39;,,& # 39;hotpink& # 39;)   ,   ,#绘制文本=,,font  ImageFont.truetype (“consola.ttf",, 40岁,编码=皍nic") #设置字体   ,draw.text((100年,50),u # 39; Hello  & # 39;,, & # 39;紫红色# 39;,,字体)   ,   ,image.show ()   ,   之前,返回

首先,通过ImageDraw类创建一个绘制对象画;

draw.line():直线的绘制,第一个参数指定的是直线的端点坐标,形式为(x0, y0 (x1, y1),第二个参数指定直线的颜色;

draw.rectangle():矩形绘制,第一个参数指定矩形的对角线顶点(左上和右下),形式为(x0, y0 (x1, y1),第二个指定填充颜色,第三个参数指定边界颜色。

draw.arc():(椭)圆弧的绘制,第一个参数指定弧所在椭圆的外切矩形,第二、三两个参数分别是弧的起始和终止角度,第四个参数是填充颜色,第五个参数是线条颜色。

draw.chord():弦的绘制,和弧类似,只是将弧的起始和终止点通过直线连接起来。

draw.pieslice():圆饼图的绘制,和弧与弦类似,只是分别将起始和终止点与所在(椭)圆中心相连;

draw.ellipse():椭圆的绘制,第一个参数指定椭圆的外切矩形,第二、三两个参数分别指定填充颜色和线条颜色,当外切矩形是正方形时,椭圆即为圆;

draw.polygon():绘制多边形,第一个参数为多边形的端点,形式为(x0, y0 (x1, y1, x2, y2,……),第二、三两个参数分别指定填充颜色和线条颜色。

draw.text():文字的绘制,第一个参数指定绘制的起始点(文本的左上角所在位置),第二个参数指定文本内容,第三个参数指定文本的颜色,第四个参数指定字体(通过ImageFont类来定义)。

绘制结果如下:

 python ImageDraw类如何实现几何图形的绘制与文字的绘制”> <br/> </p> <p>最后,补充一下python中所支持的颜色,如下图所示:</p> <p> <img src= import  cv2   import  numpy  as  np   import 操作系统   ,   class 图(对象):   ,“““   ,使用opencv绘制图形,支持直线,矩形,圆形、椭圆,多边形以及被标注文字添加   ,“““=,chart_list [& # 39;行# 39;,,& # 39;矩形# 39;,,& # 39;圆# 39;,,& # 39;椭圆# 39;,,& # 39;polyline # 39;,, & # 39; puttext& # 39;】   ,   ,def  __init__ (src_img,自我,还以为,dst_img,图表,dict_args):   时间=self.src_img 才能;os.path.normpath (src_img)   时间=self.dst_img 才能;os.path.normpath (dst_img)   时间=self.chart 才能;图表   self.dict_args 才能=dict_args   #才能,颜色不传默认为红色   self.color 才能=,dict_args[& # 39;颜色# 39;],if  dict_args.has_key(& # 39;颜色# 39;),else  (0, 0255)   #,才能线条粗细不传默认为,2   self.thickness 才能=,dict_args[& # 39;厚度# 39;],if  dict_args.has_key(& # 39;厚度# 39;),else  2   ,   ,def 处理(自我):   #,才能导入图片   时间=self.src_img 才能;cv2.imread (self.src_img)   if 才能;self.chart  not 拷贝self.chart_list:   ,,print  & # 39; must  input  your  right 参数# 39;   ,才能回来   if 才能;self.chart ==, & # 39;行# 39;:   ,,#,画直线   ,,self.start =, self.dict_args[& # 39;开始# 39;】   ,,self.end =, self.dict_args[& # 39;结束# 39;】   ,,self.draw_line ()   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

python ImageDraw类如何实现几何图形的绘制与文字的绘制