我想在 Python 中创建和栅格化矢量图形。我怀疑Pycairo
或cairocffi
(编辑:或Qahirah
) 是一个很好的选择。(如果没有,欢迎评论。)
两者之间的实际区别是什么?
具体来说,Pycairo
documentation说:
如果 Pycairo 不是你所需要的,看看 cairocffi,这是一个使用 cffi 或 Qahirah 的 API 兼容包,它使用 ctypes 并提供一个更“pythonic”的 API,不太关注匹配 cairo C API。
但这引发了一些问题:在什么情况下,Pycairo 可能“不是您所需要的”,而 cairocffi 是?cffi / Qahirah / ctypes 在哪些方面比 Pycairo 更好?Pycairo 在哪些方面不是“pythonic”?
编辑:A comma might be missing after "cffi"在上面的引用中。在这种情况下,它不是关于“Pycairo vs.cairocffi”,而是关于“Pycairo vs.cairocffi vs.Qahirah”。
密切模仿 C API 意味着函数采用简单的参数。例如,move_to
函数 / 方法如下所示:
ctx.move_to(x: float, y: float)→ None
如果你想在程序中使用(x,y)点或向量,那么在某些时候你可能会感到恼火,你需要写,比如,move_to(P[0], P[1])
而不是move_to(P)
。
在 Qahirah 你这样写:
p = Vector(x, y)
ctx.move_to(p)
或者也许
ctx.move_to(Vector(x, y))
或者甚至
ctx.move_to((x, y))
您可以将 C API 视为基础级别,可以构建更方便的 API。
与往常一样,这是一个权衡。使用直接样式的 C API 可能会更快(但不是很多)。
有关更多信息,请参见 Qahirah 的自述文件:
https://github.com/ldo/qahirah
再说一次-如果您发现使用 C 的开罗教程,则使用直接样式 C API 可能会更容易。
试试他们两个,看看你喜欢什么。
本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处
评论列表(46条)