【发布时间】:2013-03-11 05:50:09
【问题描述】:
我正在尝试编写一个将 PNG 图像输出到标准输出的 CGI 程序。我已经可以从图像文件(PNG 或其他)中执行此操作,但现在我使用 Cairo 动态生成一些图像,然后将其输出到浏览器。
我面临的问题是:Cairo 将表面写入 PNG 的方式是使用两个函数之一。第一个是 Surface::write_to_png(string filename)。这对我不起作用,因为我不是在写入文件,而是写入标准输出。第二个是 Surface::write_to_png_stream(something-or-other write_func),如 here 所述。我不明白这是如何工作的,或者即使这是我想要的。有没有更好的方法来实现这一点,如果没有,我该如何使用这个糟糕的功能?
谢谢
【问题讨论】:
-
那么,这是怎么回事,它有效吗?
-
@Kerrek SB:嘿,我今天才看到你的评论,对此感到抱歉。无论如何,是的,我让它工作了,我在底部写了一个答案。谢谢!
-
注意:write-func 参数实际上是一个 sigc::slot,也就是所谓的“委托”,即。您还可以从一个对象及其成员函数之一创建一个插槽,而不仅仅是一个普通的 C 函数。