在FLTK中显示base64编码图像

时间:2017-03-14 00:17:30

标签: c++ image base64 fltk

是否可以在FLTK中显示已经base64编码为字符串的图像?如果可能的话,我想避免在可执行文件之外添加额外的图像文件。我可能能够使用可执行文件打包图像,但只是在源代码中对其进行base64编码似乎更容易。不过,我可能会弄错。

1 个答案:

答案 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.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