在 FLTK 中显示 base64 编码的图像

Display base64 encoded image in FLTK

是否可以在FLTK中显示已经base64编码为字符串的图像?如果可能的话,我想避免在可执行文件之外有一个额外的图像文件。我也许可以将图像与可执行文件打包在一起,但在源代码中对其进行 base64 编码似乎更容易。不过我可能弄错了。

很久以前我也尝试过将图像嵌入到我的 FLTK 应用程序中,base64 是显而易见的选择,不幸的是我不记得是什么阻止了我使用它。

所以我最终得到一个 small utility,它将 PNG 文件序列化为 Fl_RGB_Image 作为字节数组(这是我的调整版本,我不记得我在哪里找到它,所以我可以'不承认其原作者)。

像编译任何 FLTK 应用程序一样编译它,例如g++ -o "png2img" png2img.cpp -lfltk_images -lfltk -lpng(或查看 GitHub 处的 Makefile),然后 运行 为 ./png2img <path to folder with png files>。它将生成两个文件:images.cppimages.h,您可以随意重命名。

最后,您可以将 images.cpp 添加到构建链并使用 images.h:

#include "images.h" // check the available images
// ...
button_play = new Fl_Button();
button_play->image(img_icon_play); // A Fl_RGB_Image from images.h