将图像插入帧缓冲区并将帧缓冲区写入 png
Posted
技术标签:
【中文标题】将图像插入帧缓冲区并将帧缓冲区写入 png【英文标题】:Insert image into a framebuffer and write framebuffer to png 【发布时间】:2014-06-15 04:58:03 【问题描述】:我是 Python 新手,一直在全职学习这门语言。我希望能够:
将png
读入视频帧缓冲区并在窗口中显示
读取-修改-写入单个像素
将视频帧缓冲区写回png
看起来很简单,我已经能够使用pyglet 完成部分工作。我已经阅读了数百份文件,似乎我越来越困惑。
有人能指出正确的方向吗?
【问题讨论】:
您能具体告诉我们您遇到了什么问题吗? 我修改了标题,希望这更符合您的要求。 请edit your question 添加更多详细信息,因为 cmets 系统不是为此设计的。 下面允许我加载一个 png,读取一个像素,但这是我所得到的 'import png import pyglet # use png p = [(255,128,0, 0,255,0 , 0,0,255), (128,0,0, 0,128,0, 0,0,128)] f = open('swatch.png', 'wb') w = png.Writer(3, 2) w.write( f, p) f.close() 窗口 = pyglet.window.Window() 图像 = pyglet.resource.image('swatch.png') y=1 x=0 pix = image.get_region(x,y,1, 1).get_image_data().get_data("RGB", 3) R1 = ord(pix[0]) G1 = ord(pix[1]) B1 = ord(pix[2]) 打印 x, R1, G1, B1 @window.event def on_draw(): window.clear() image.blit(0,0) pyglet.app.run()' 【参考方案1】:作为第一个提示,我会检查这些功能:
捕捉视频帧:pyglet.image.get_texture()
(这里的文档:http://pyglet.org/doc/api/pyglet.media.Player-class.html)
保存 png :pyglet.image.get_buffer_manager().get_color_buffer().save(filename)
要使用像素,当您使用纹理时,pyglet.image.ImageData
类应该是要查看的 pyglet 类。
(此处的 API 文档:http://pyglet.org/doc/api/pyglet.image.ImageData-class.html#format)
【讨论】:
以上是关于将图像插入帧缓冲区并将帧缓冲区写入 png的主要内容,如果未能解决你的问题,请参考以下文章