详解Python PIL ImageDraw.Draw.ellipse()

  • Post category:Python

Python PIL是Python Imaging Library的缩写,是Python图像处理库中最为常用的库之一。而ImageDraw是Python PIL中一个常用的绘图模块,它可以实现在图像上画点、线、圆、矩形等等。

其中,Draw.ellipse()方法可以在图像上绘制一个椭圆形,它有如下参数:

  • bbox:定义椭圆的边框,要求是一个由四个整数组成的序列,分别是左上角的横纵坐标和右下角的横纵坐标。例如bbox=(50, 50, 150, 100)表示一个左上角坐标为(50, 50),右下角坐标为(150, 100)的矩形内绘制一个椭圆形。

  • fill:填充颜色,可以是一个字符串(如’blue’)表示颜色名,也可以是一个RGB三元组(如(255, 0, 0))表示颜色的RGB值。

  • outline:线条颜色,同fill参数。

接下来,我们来看两个具体的Draw.ellipse()方法使用示例:

示例一

from PIL import Image, ImageDraw

# 创建一张空图像
im = Image.new('RGB', (300, 300), 'white')
# 创建绘制对象
draw = ImageDraw.Draw(im)
# 绘制椭圆形
draw.ellipse((50, 50, 150, 100), fill='blue', outline='red')
# 保存图片
im.save('ellipse1.png')

该示例中,我们首先使用Image.new()方法创建了一张大小为(300, 300)、背景为白色的图像。接着使用ImageDraw.Draw()方法创建了一个绘制对象,并在其中使用Draw.ellipse()方法绘制了一个边框坐标为(50, 50, 150, 100)的蓝色椭圆形,并用红色描绘边框。最后使用save()方法将图片保存到了ellipse1.png文件中。

示例二

from PIL import Image, ImageDraw

# 打开一张已有的图片
im = Image.open('test.jpg')
# 创建绘制对象
draw = ImageDraw.Draw(im)
# 绘制椭圆形
draw.ellipse((150, 150, 350, 250), fill='yellow', outline='black')
# 保存图片
im.save('ellipse2.jpg')

该示例中,我们首先使用Image.open()方法打开已经存在的一张test.jpg图片。接着使用ImageDraw.Draw()方法创建了一个绘制对象,并在其中使用Draw.ellipse()方法绘制了一个边框坐标为(150, 150, 350, 250)的黄色椭圆形,并用黑色描绘边框。最后使用save()方法将在test.jpg图片上绘制后的图片保存到了ellipse2.jpg文件中。

通过以上两个示例,我们可以看到,使用Draw.ellipse()方法可以快速在图像上绘制出椭圆形状。同时,我们也可以使用它的一些其他的参数功能,如dash参数,设置边框的虚线等。总之,Draw.ellipse()方法可以为处理图像的开发者提供更加方便灵活的绘制椭圆形状的方法。