Может ли кто-нибудь опубликовать пример кода о том, как использовать операции «gegl: weighted-blend» в коде c, а не gegl (терминал) с файлами xml (фильтрами).
Я начал использовать библиотеку gegl, она идеально подходит для моих нужд, но Я не могу найти хорошую документацию (веб-сайт хороший, но не подробный). Есть ли форум или место, где вы можете попросить помощи в программировании с библиотекой gegl?
Если это поможет, вот моя пробная версия использования gegl:weighted-blend :
GeglNode *gegl = gegl_node_new ();
GeglNode *display = gegl_node_create_child (gegl, "gegl:display");
GeglNode *over = gegl_node_new_child (gegl,"operation", "gegl:over",NULL);
GeglNode *c2g = gegl_node_new_child (gegl,"operation", "gegl:c2g",NULL);
GeglNode *blur = gegl_node_new_child (gegl,"operation", "gegl:gaussian-blur","std- dev-x",1.0,"std-dev-y",1.0,NULL);
GeglNode *img = gegl_node_new_child (gegl,"operation", "gegl:load","path","test.jpg",NULL);
GeglBuffer *buffer = NULL;
GeglNode *sink = gegl_node_new_child (gegl,"operation", "gegl:buffer-sink","buffer", &buffer,NULL);
gegl_node_link_many (img , c2g , sink, NULL);
gegl_node_process (sink);
GeglNode *blend = gegl_node_new_child (gegl,"operation", "gegl:weighted-blend","aux",buffer,"value",0.0,NULL);
gegl_node_link_many(img, blend, display, NULL);
//gegl_node_process (blend);
//gegl_node_link_many(blend, display, NULL);
gegl_node_process (display);
Немного информации, в этом примере у меня есть изображение test.jpg. Я применил к нему фильтр c2g, затем попытался смешать его сам с собой без фильтра c2g.
Части c2g и gegl:buffer-sink работают, то есть я могу отображать изображение в оттенках серого, а буфер заполнен изображение в оттенках серого.
Что я делаю неправильно? Потому что результатом этого с комбинацией gegl:weighted-blend является пустой экран.