LINUX.ORG.RU

GTK. Компиляция картинок внутрь программ


0

0

Подскажите, пожалуйста, каким образом можно загружать картинку в GtkImage не из внешнего файла, а из ресурсов программы. Имеется ввиду, что при выполнении gtk_image_new_from_file () скомпилированная программа также остаётся зависимой от внешнего файла-рисунка. Как сделать так, чтобы после компиляции внешние файлы не требовались?

http://developer.gimp.org/api/2.0/gtk/GtkImage.html#gtk-image-new-from-pixbuf

+

http://library.gnome.org/devel/gdk-pixbuf/unstable/gdk-pixbuf-inline.html#GdkPixdata

= profit

P.S. На гтк не писал никогда, но нашел за 5 минут, непонятно, почему у тебя так не получилось.

P.S.S. А вообще нехорошо лишать пользователя возможности поменять картинки для его темы.

vga ★★ ()
Ответ на: комментарий от vga

Спасибо за быстрый ответ, однако ето не совсем то, хотя и повело в нужном направлении. На самом деле за преобразование в сишный код отвечает программа gdk-pixbuf-csource. Остаётся только правильно её результаты приинклудить в основную программу и правильно написать Makefile.

abr_linux ()
Ответ на: комментарий от lester_dev

Делай картинки в xpm

они же будут без alpha-канала, я, например, храню их так( большая часть идет в файлах, но всякую мелочь время от времени кладу прямо по месту использования - если она заведомо больше нигде не нужна, или класс будет полезен для использования в других проектах - тогда не придется возится с ресурсами ):

static const char* arrowDown =
	"iVBORw0KGgoAAAANSUhEUgAAAAcAAAAECAYAAABCxiV9AAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlz"
	"AAALEwAACxMBAJqcGAAAAClJREFUCNdjtIoo+8+AAzAyMDAwYFNwbEUXIyOMg6zg2IouRgxj0E0AAMOKDBIwVhPhAAAAAElF"
	"TkSuQmCC";

Bitmap bmp( arrowDown );
lester ★★★★ ()
Ответ на: комментарий от abr_linux

Спасибо за быстрый ответ, однако ето не совсем то, хотя и повело в нужном направлении. На самом деле за преобразование в сишный код отвечает программа gdk-pixbuf-csource.

«На самом деле» о gdk-pixbuf-csource и написано во второй ссылке, так что я не понял, что именно «не совсем-то». Или ты Ъ, и по ссылкам не ходил?

vga ★★ ()
Ответ на: комментарий от vga

Звиняюсь, последний абзац не заметил, поскольку там есть и gdk_pixdata_to_csource - а ето, как раз, не совсем то.

abr_linux ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.