【问题标题】:Python, Draw a circle with PILPython,用PIL画一个圆
【发布时间】:2011-02-28 03:37:54
【问题描述】:

我正在寻找一个使用 PIL 在现有图像上绘制圆圈的命令。

im = Image.open(path)

我想要一个函数来绘制一个半径为r 和中心为(x,y) 的彩色圆圈

【问题讨论】:

    标签: python python-imaging-library


    【解决方案1】:
    image = Image.open("x.png")
    draw = ImageDraw.Draw(image)
    leftUpPoint = (x-r, y-r)
    rightDownPoint = (x+r, y+r)
    twoPointList = [leftUpPoint, rightDownPoint]
    draw.ellipse(twoPointList, fill=(255,0,0,255))
    

    参考官方文档:PIL.ImageDraw.ImageDraw.ellipse(xy, fill=None, outline=None, width=0)

    【讨论】:

    • ellipse() 采用边界框(即两组 X/Y 坐标),而不是一组 X/Y 坐标和一对直径。
    【解决方案2】:

    ImageDraw.ellipse 与方形bbox(0,0,10,10)一起使用,表示直径为10。

    【讨论】:

      【解决方案3】:
      image = Image.open("x.png")
      draw = ImageDraw.Draw(image)
      draw.ellipse((x-r, y-r, x+r, y+r), fill=(255,0,0,0))
      

      使用这种方式我无法使其半透明,它总是不透明的

      这个问题可以通过这里给出的解决方案来解决: How do you draw transparent polygons with Python?

      直接链接:https://stackoverflow.com/a/21768191

      【讨论】:

        【解决方案4】:
        image = Image.open("x.png")
        draw = ImageDraw.Draw(image)
        draw.ellipse((x-r, y-r, x+r, y+r), fill=(255,0,0,0))
        

        使用这种方式我无法使其半透明,它总是不透明的

        【讨论】:

          猜你喜欢
          • 2014-01-11
          • 2011-06-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-03-02
          • 2011-10-15
          • 1970-01-01
          相关资源
          最近更新 更多