使用线帽和线连接的设置绘制线条

时间:2011-07-11 19:21:53

标签: python image html5 drawing

我需要一个Python库,它可以绘制一个选项来选择行上限(例如圆形)和行连接(例如圆形)。

我正在寻找像HTML5 Canvas Drawing功能一样的东西。

我查看了PIL,AggDraw并没有找到行上限和加入选项。

谢谢。

修改

我找到了我决定使用的开罗图书馆。您可以阅读有关开罗here和PyCairo here

的更多信息

2 个答案:

答案 0 :(得分:3)

使用PyQt,您可以轻松设置这些属性,应用程序可以没有gui(例如,只需创建图像并保存到文件中)。

只需查看有关设置抗锯齿的QPainter文档(使用setRenderHints)以及有关QPen类的文档来设置上限和联接样式。

from PyQt4.Qt import *
import math

app = QApplication([])

img = QImage(256, 256, QImage.Format_RGB32)
dc = QPainter(img)
dc.fillRect(0, 0, 256, 256, QColor(192, 192, 192))
dc.setRenderHints(QPainter.Antialiasing)
dc.setPen(QPen(QColor(128, 128, 192),
               12.0,
               Qt.SolidLine,
               Qt.RoundCap,
               Qt.RoundJoin))
pts = []
for i in xrange(7):
    t = i * 2 * 3 * math.pi / 7
    pts.append(QPointF(128 + 100 * math.cos(t),
                       128 + 100 * math.sin(t)))
dc.drawPolyline(QPolygonF(pts))
dc = None
img.save("output.png")

Output of the example program

答案 1 :(得分:2)

由于您在询问HTML5画布,我假设您将其输出到网页。在这种情况下,你会考虑SVG图形而不是Canvas吗? (我个人更喜欢SVG而不是画布,尤其是画线)

如果您对SVG没问题,那么您可能需要查看pySVG - 它似乎满足您在多边形和折线方面的需求。

希望有所帮助。