是否可以在FLTK中显示已经base64编码为字符串的图像?如果可能的话,我想避免在可执行文件之外添加额外的图像文件。我可能能够使用可执行文件打包图像,但只是在源代码中对其进行base64编码似乎更容易。不过,我可能会弄错。
答案 0 :(得分:0)
很久以前我也尝试将图像嵌入到我的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.cpp
和images.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