如何从嵌入式资源加载图像

开发克服

我想将图像设置为按钮:

GtkImage* imageForButton = gtk_image_new_from_resource("which path is here?");
GtkWidget* btn = gtk_button_new();
gtk_button_set_image(GTK_BUTTON(btn));

如何使其与嵌入式资源一起使用?

我有resource.h / resource.rc,将尝试使用MakeIntResource,但我认为GTK不会使用它。

Andlabs

GTK +不支持Windows资源(至少据我所知)。相反,它使用自己的跨平台资源格式GResource使嵌入式资源正常工作的最简单方法是使用它。它与Windows资源编辑器不兼容,并且需要生成一个额外的C源文件,但是只要您使用GLib或GTK +,它就可以正常工作。您应该将GResource编译器作为GTK +安装的一部分(但是我不确定100%)。如果走这条路,您将能够继续使用PNG文件。(即使有可能,我也不知道如何在Windows资源中使用PNG文件。)

但是,如果您坚持使用Windows资源,那么我可以想到一种可行的方法,尽管这不是唯一的方法:使用Windows API资源函数HBITMAP从您的资源中加载资源,然后调用GetObject()Windows资源获取BITMAP结构。HBITMAP,然后gdk_pixbuf_new_from_data()使用BITMAP结构中的适当字段作为参数(rowstride== BITMAP.bmWidthBytes进行调用祝你好运!

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章