【发布时间】:2020-10-05 23:35:41
【问题描述】:
有没有办法在运行时使用 Xlib 逐个像素地显示全彩色图像?
虽然它具有全彩,但该程序可以适应任何配色方案,例如 rgb、brg 或只是颜色的十六进制值。
有一个名为 XDrawPoints() 的函数允许绘制多个点,但一次只能绘制一种颜色。如果有可以同时显示多种颜色的功能就很方便了。
类似于 windows gdi 中的 bitblt() 函数也可以很好地工作。
效率也很重要,因为我打算稍后再做一些动画。
【问题讨论】:
有没有办法在运行时使用 Xlib 逐个像素地显示全彩色图像?
虽然它具有全彩,但该程序可以适应任何配色方案,例如 rgb、brg 或只是颜色的十六进制值。
有一个名为 XDrawPoints() 的函数允许绘制多个点,但一次只能绘制一种颜色。如果有可以同时显示多种颜色的功能就很方便了。
类似于 windows gdi 中的 bitblt() 函数也可以很好地工作。
效率也很重要,因为我打算稍后再做一些动画。
【问题讨论】:
类似于 windows gdi 中的 bitblt() 函数也可以很好地工作。
请记住,对于 X11,“客户端”和“服务器”可以通过潜在的高延迟/低带宽链接分开,并且所有调用都需要序列化(有共享内存图像等例外)。回答你的问题:
您可以使用XPutImage 在服务器端“drawable”(e.i 窗口或“Pixmap”上绘制客户端图像。Pixmap 可用作图像的服务器端副本的表示)。 XCopyArea 类似于 bitblt,允许您将图像从一个可绘制对象复制到另一个(例如,在窗口的可见区域绘制先前上传的像素图)
还有来自 XRender 扩展的功能,允许在服务器上将多个 RGBA 图像组合在一起。
【讨论】: