例如,与OpenGL相比,Python Image Library(PIL)ImageDraw模块的速度有多快?

时间:2011-03-27 02:23:48

标签: python opengl python-imaging-library gpu

我有一些.png图片,我希望能够快速:

(a)从文件加载.png。 (b)在.png的顶部画一些简单的线条。 (c)获取结果图像的内容(字节)作为http请求的结果返回。

听起来PIL很适合用相对较少的代码执行此操作。但是,我试图了解它的效率,特别是当我在步骤(b)中绘制数千条线时。另一种方法是使用PyOpenGL,但在进入之前我想了解PIL是否足够快。

我打算问PIL是否使用了OpenGL。但这可能是错误的问题,因为我的理解是,为了从PyOpenGL获得真正的速度优势,我想将我的行顶点提交为NumPy数组。所以大概即使PIL使用OpenGL,当我进行单独的PIL调用以绘制每条线时,我会失去很多好处吗?

在绘制大量原语时,是否有人掌握PIL速度的具体数据?

1 个答案:

答案 0 :(得分:2)

“在.png之上绘制一些简单的行”不是计算密集型任务。

这似乎不适合GPU,因为它们更适合更复杂的任务。您必须意识到图像最初是加载到RAM上的,因此您需要将此数据发送到GPU内存然后将其检索回来。此操作消耗几毫秒,具体取决于图像的大小,可以更好地用于CPU处理。

如果算法具有很高的算术强度,那么您的应用程序只会从GPU中受益。