Отобразить закодированное в base64 изображение в FLTK
Можно ли отображать изображения, которые были закодированы в формате base64 как строки в FLTK? Я хочу, чтобы по возможности не было дополнительного файла образа вне исполняемого файла. Возможно, мне удастся упаковать образ с помощью исполняемого файла, но, кажется, проще просто кодировать его base64 в исходном коде. Я могу ошибаться, хотя.
1 ответ
Давным-давно я также пытался встраивать изображения в свое приложение FLTK, очевидным выбором был base64, к сожалению, я не могу вспомнить, что мешало мне его использовать.
Таким образом, я получаю небольшую утилиту, которая сериализует PNG-файлы в Fl_RGB_Image как байтовый массив (это моя измененная версия, я не могу вспомнить, где я ее нашел, поэтому я не могу поверить в ее первоначального автора).
Скомпилируйте его так же, как любое приложение FLTK, например g++ -o "png2img" png2img.cpp -lfltk_images -lfltk -lpng
(или посмотрите Makefile на GitHub), затем запустите его как ./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