gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 08:29:18 24 4
gpt4 key购买 nike

我想给按钮设置图片:

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 有任何用处。

最佳答案

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

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

关于c - 如何从嵌入式资源加载图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29122549/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com