我有一些.png图片,我希望能够快速:
(a)从文件加载.png。 (b)在.png的顶部画一些简单的线条。 (c)获取结果图像的内容(字节)作为http请求的结果返回。
听起来PIL很适合用相对较少的代码执行此操作。但是,我试图了解它的效率,特别是当我在步骤(b)中绘制数千条线时。另一种方法是使用PyOpenGL,但在进入之前我想了解PIL是否足够快。
我打算问PIL是否使用了OpenGL。但这可能是错误的问题,因为我的理解是,为了从PyOpenGL获得真正的速度优势,我想将我的行顶点提交为NumPy数组。所以大概即使PIL使用OpenGL,当我进行单独的PIL调用以绘制每条线时,我会失去很多好处吗?
在绘制大量原语时,是否有人掌握PIL速度的具体数据?
答案 0 :(得分:2)
“在.png之上绘制一些简单的行”不是计算密集型任务。
这似乎不适合GPU,因为它们更适合更复杂的任务。您必须意识到图像最初是加载到RAM上的,因此您需要将此数据发送到GPU内存然后将其检索回来。此操作消耗几毫秒,具体取决于图像的大小,可以更好地用于CPU处理。
如果算法具有很高的算术强度,那么您的应用程序只会从GPU中受益。