如何使用PIL做一个圆?

2024-04-29 10:58:45 发布

您现在位置:Python中文网/ 问答频道 /正文

正如标题所说,我想在PIL中画一个圆,但输出不是一个圆

输出:https://i.stack.imgur.com/qlYmD.png

代码:

  mask_im = Image.new("RGB", im2.size, (53, 108, 181))
  draw = ImageDraw.Draw(mask_im)

  x, y = mask_im.size
  eX, eY = 517, 191

  bbox = (x/2 - eX/2, y/2 - eY/2, x/2 + eX/2, y/2 + eY/2)
  draw.ellipse(bbox, fill = 'black', outline ='black')
  mask_im.save('circle.png')

我想知道如何解决这个问题


Tags: https标题sizepilpngstackmaskex
1条回答
网友
1楼 · 发布于 2024-04-29 10:58:45

要绘制半径为50且圆心位于(150,150)的圆,请执行以下操作:

  mask_im = Image.new("RGB", (300,300), (53, 108, 181))
  draw = ImageDraw.Draw(mask_im)

  X, Y = 150, 150
  r = 50
  
  draw.ellipse([(X-r, Y-r), (X+r, Y+r)], fill = 'black', outline ='black')

到您必须提供的ellipse

Two points to define the bounding box. Sequence of [(x0, y0), (x1, y1)] or [x0, y0, x1, y1], where x1 >= x0 and y1 >= y0

对于边界框的左下角,我们必须从X轴的中心向后移动r个单位,从y轴的中心向下移动r个单位。类似地,对于边界框的右上角,我们必须在X轴上从中心向前移动r个单位,在y轴上从中心向上移动r个单位

相关问题 更多 >