【问题标题】:Saving xlib XImage to PNG将 xlib XImage 保存为 PNG
【发布时间】:2010-12-16 22:01:49
【问题描述】:

我正在使用 xlib。

我有一个 XImage 结构,其中填充了来自 XGetImage() 调用的信息。有没有一种流行的方法可以从 XImage 获得更有意义的东西.. 即 PNG?

我看过 libpng,但几乎每个人都听说它是一头难以驯服的野兽。这仍然是推荐的路径吗?

【问题讨论】:

标签: c linux x11 xlib xorg


【解决方案1】:

另请参阅How to save XImage as bitmap?,尽管该人有不能使用库的限制。

如果您可以使用图书馆,我相信 Cairo 会为您做到这一点。它为您处理 libpng 混乱的 PNG 保存,并且它具有从 X 获取像素的代码。但是,它可能使从 XImage 获取像素变得困难;它会想从窗口或像素图中获取它们。如果您可以将您的 XGetImage() 替换为 cairo,那么它可能会正常工作。我认为你在开罗大致做事的方式是:

您还可以使用 Xlib 表面作为源来绘制图像表面,然后根据需要对图像表面执行其他操作(缩放或在其上绘制或其他),然后保存为 PNG。

如果您正在使用任何类型的 UI 工具包,它可能也有这方面的代码,例如GTK+ 有 gdk_pixbuf_get_from_drawable() 等。

【讨论】:

  • 谢谢!我看过那篇文章,但是对于尝试另一个库来完成我认为很受欢迎的任务却一无所知。开罗看起来是完美的答案
猜你喜欢
  • 2011-09-28
  • 2010-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-16
  • 2012-10-29
相关资源
最近更新 更多