首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python像素操作库

Python像素操作库
EN

Stack Overflow用户
提问于 2010-04-14 07:28:51
回答 3查看 2.1K关注 0票数 2

所以我正在经历用Python制作游戏的开始阶段,我正在寻找一个能够处理像素并相对快速地对它们进行blit的库。

我的第一个想法是pygame,因为它处理纯2D表面,但它只允许通过pygame.get_at()pygame.set_at()pygame.get_buffer()访问像素,所有这些都会在每次调用时锁定表面,这使得它们使用起来很慢。我也可以使用PixelArraysurfarray类,但它们在它们的生存期内都是锁定的,唯一的方法是将像素复制到一个新的表面上,或者使用surfarray.blit_array,这需要创建一个屏幕的子表面,如果数组比屏幕小(如果它比屏幕小,我可以只使用数组的一小部分,这是没有问题的)。

我没有太多使用PyOpenGL或Pyglet的经验,但我想知道是否有更快的库来做像素处理,或者有没有更快的方法,在Pygame中做像素处理。我用C语言做了一些SDL和OpenGL的工作,我确实喜欢在我的程序中添加顶点/片段着色器的想法。

我的程序将主要处理加载图像和对表面的写入/读取。

EN

回答 3

Stack Overflow用户

发布于 2010-04-14 08:40:39

你试过Python Imaging Library吗?你仍然需要通过frombuffer或类似的方式将数据传回pygame,以进行but,但PIL可以处理像素访问。

票数 2
EN

Stack Overflow用户

发布于 2010-04-14 12:16:34

我检查了pyglet,当图像没有太多操作时,它在静态每像素碰撞中工作得很好;但是,我不确定它对动态图像有多好。

简而言之,我正在寻找一个能够快速显示像素缓冲区的库。此缓冲区将不断变化,因此快速访问和blitting是必不可少的。这可以使用SDL在C中相对容易地完成;但是,我正在寻找Python中的类似方法。在这一点上,我甚至不太担心硬件加速,尽管它肯定会很好。

票数 0
EN

Stack Overflow用户

发布于 2014-02-06 03:53:49

检查Simple and Fast Multimedia LibraryPython bindings。来自it's documentation

它实现了相同的2D绘图和OpenGL相关函数(更多细节见它们的基类sf::RenderTarget ),不同之处在于结果存储在屏幕外的纹理中,而不是显示在窗口中。

渲染到纹理在各种情况下都很有用:

使用OpenGL

  • etc.

渲染的3D对象中的精灵(

  • )预先计算复杂的静态纹理(如从多个tiles)
  • applying后期效果到整个场景的关卡背景

另请检查包含和的方法与sf::Rect< T > Class Template相交。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2633900

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档