代码之家  ›  专栏  ›  技术社区  ›  Dan F.

Python PIL draw\u椭圆或draw\u矩形

  •  0
  • Dan F.  · 技术社区  · 8 年前

    我是个老前辈,已经用Fortran、C、C++、Perl和一点 多年来一直在学习Java,并试图学习这种新型的Python语言。

    我有一个小程序,使用PIL创建图像,绘制一些 基元(矩形、椭圆等)并将其保存到PNG。工作正常。。。 没有问题。

    我在过去找到了 “真正学习” 一种语言 是为了 “在引擎盖下偷看” 并理解机制(双关语!)。。。我以为我在做 进步但是当查看PIL库以了解发生了什么时 图像绘制。py公司

    def ellipse(self, xy, fill=None, outline=None):
        """Draw an ellipse."""
        ink, fill = self._getink(outline, fill)
        if fill is not None:
            self.draw.draw_ellipse(xy, fill, 1)
        if ink is not None:
            self.draw.draw_ellipse(xy, ink, 0)
    

    所以 椭圆() 调用该方法 自己画draw_ellipse() 好吧,好吧。。。 但是它在哪里 绘制椭圆(…) 定义那里发生了什么奇迹? 我搜索了整个PIL目录树(甚至整个python树…),只有两个地方 绘制椭圆 提到的都在 椭圆() 方法定义。。。我甚至试着在调试器中单步执行它,但我仍然对引擎盖下发生的事情感到“不安”:-。

    我错过了什么??

    谢谢

    1 回复  |  直到 8 年前
        1
  •  0
  •   dkato    8 年前

    draw_ellipse在_imaging中定义。c文件。请参阅以下内容。

    https://github.com/python-pillow/Pillow/blob/master/_imaging.c

    _imaging.cpy.~ . 在我的环境中 _imaging.cpython-36m-darwin.so .