微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 GIMP C 插件中使用 GEGL 缩放颜色通道

如何解决如何在 GIMP C 插件中使用 GEGL 缩放颜色通道

我正在尝试在 Gimp C 插件中使用 GEGL。我想要的是缩放 R、G、 和 B 值分别用于某个矩形。

我尝试了下面的代码片段,但它没有更新任何像素(drawable_id、x1、y1、宽度、高度在此代码之外定义

GeglBuffer *img_buffer = gimp_drawable_get_buffer(drawable_id);
GeglBuffer *shadow_buffer = gimp_drawable_get_shadow_buffer(drawable_id);

Geglrectangle sub_img;
gegl_rectangle_set(&sub_img,x1,y1,width,height);
GeglColor *col = gegl_color_new("");  // Todo: use free to free or g_object_unref?
gegl_color_set_rgba(col,0.1,0.5,0.7,1);
gegl_buffer_set_color(shadow_buffer,&sub_img,col);

gegl_render_op(img_buffer,shadow_buffer,"gegl:multiply",NULL);
    
g_object_unref(img_buffer);
g_object_unref(shadow_buffer);
gimp_drawable_merge_shadow(drawable_id,TRUE);  // what kind of merge is this
anyway?

gimp_drawable_update(drawable_id,height);
gimp_displays_flush();
gegl_exit();

我做错了什么?

enter link description here 处的文档 声明“..使用'value'中提供的常量或 aux 上缓冲区中的相应像素作为操作数。”但也许不是 可以将每个颜色通道与一个单独的值相乘 gegl:乘以?在这种情况下,我想知道改用什么函数

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。