python里哪个函数可以填充图形?

  • Post category:Python

在Python的图形处理库中,可以使用Pillow和OpenCV等库来操作图片,实现填充图形的效果。

Pillow库中的ImageDraw模块提供了一系列绘制图形对象的方法,其中的ImageDraw.floodfill()方法可以用来填充封闭图形。具体使用方法如下:

  1. 导入Pillow库和Image模块
from PIL import Image, ImageDraw
  1. 创建一个指定大小的画布
canvas = Image.new('RGB', (300, 300), 'white')

这里使用的是白色(’white’)背景的图像。

  1. 创建一个Draw对象,用来绘制图形
draw = ImageDraw.Draw(canvas)
  1. 绘制一个封闭的图形
draw.rectangle((50, 50, 250, 250), fill='black', outline='red')

在画布上绘制一个黑色边框、红色填充的矩形,左上角坐标为(50,50),右下角坐标为(250,250)。

  1. 使用floodfill()方法填充图形
ImageDraw.floodfill(canvas, (150, 150), 'blue')

这里将(150,150)作为填充起点,使用蓝色(‘blue’)填充了整个矩形。

完整代码如下:

from PIL import Image, ImageDraw

# 创建画布
canvas = Image.new('RGB', (300, 300), 'white')

# 创建绘图对象
draw = ImageDraw.Draw(canvas)

# 画矩形
draw.rectangle((50, 50, 250, 250), fill='black', outline='red')

# 填充图形
ImageDraw.floodfill(canvas, (150, 150), 'blue')

# 保存图片
canvas.save('filled_rect.png')

这样就可以在当前目录下生成名为filled_rect.png的图片文件。

另外,OpenCV库中的cv2.fillPoly()方法也可以用来实现填充封闭图形的效果。具体使用方法可参考OpenCV官方文档。