我有这个使用
显示图像的UIadd(*manage(new Gtk::Image("image.png")));
但应用程序会从每个lauch的硬盘驱动器中取出它,如果它不存在则会被打破,等等。我如何编码image.png以便我可以在代码中发送它?
答案 0 :(得分:1)
GResource对此非常有用。它允许您在* .gresource.xml文件中列出资源文件(例如图像)。然后glib-compile-resources实用程序从中生成一个.c文件,并将该.c文件链接到您的应用程序中。您需要一些Makefile.am更改才能使其正常发生,但您可以查看一些现有项目,例如我的Glom项目:
然后您可以使用API,例如Gtk :: Image :: set_from_resource()。或者您可以直接使用API(例如g_resources_open_stream())获取数据,甚至可以使用g_resources_enumerate_children()遍历所有可用资源。
以下是我的Glom项目的一些相关提交:
https://git.gnome.org/browse/glom/commit/?id=f79223fa7ebbb0cfc12c6a47366136de478d57cb
https://git.gnome.org/browse/glom/commit/?id=9cd1b6dab94191abbb9392304e867bddb2bba766
答案 1 :(得分:0)
转换" image.png"到XPM文件; FWIW,标准XPM格式是可编译的C代码。但更重要的是,有pixbuf和pixmap函数可以直接加载XPM数据。