问题标签 [gegl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
327 浏览

image-processing - GEGL 库中的加权混合

有人可以发布一个关于如何在 c 代码中使用“gegl:weighted-blend”操作的代码示例,而不是带有 xml 文件(过滤器)的 gegl(终端)。
我开始使用 gegl 库,它完全符合我的需求,但我似乎找不到好的文档(该网站很好但不详细)。是否有论坛或地方可以在使用 gegl 库进行编程时寻求帮助?
如果它有帮助,这是我使用 gegl:weighted-blend 的试验:

一点信息,在这个例子中我有一个 test.jpg 图像。我在上面应用了一个 c2g 过滤器,然后我尝试在没有 c2g 过滤器的情况下将它与自身混合。
c2g 和 gegl:buffer-sink 部分工作,这意味着我可以用灰度显示图像,并且缓冲区填充有灰度颜色的图像。
我究竟做错了什么?因为这个与 gegl:weighted-blend 组合的输出是一个空白屏幕。

0 投票
1 回答
335 浏览

git - 尝试编译 Gimp 时无法编译 gegl

我正在尝试使用 git 源和此方法编译 Gimp 2.10 版。我是一个有多年经验的 Gentoo 用户,所以不是编译的初学者。Gentoo Portage 有 2.8 版本,但 2.10 看起来非常好。我是一个热心的摄影师。

好的依赖项......我需要 bbl、gegl 和 pango,因为安装的版本还不够晚。根据上述说明,我在 $HOME/gimp-git/ 中编译了安装的 babl,并在文件 $PREFIX/share/config.site 中设置了一个环境

我已发出命令

现在当我尝试编译gegl

没问题,所以我发出'make'命令并引发错误

那个文件在

我什至也把它放在这里,但同样的错误

关于如何让gegl构建找到babl.h文件的任何想法将不胜感激?

好的,因为我写了这个,我已经把它添加到我的 $PREFIX/share/config.site 文件中

编译继续进行,直到:

所以我又有点卡住了!

0 投票
1 回答
98 浏览

python - 有没有办法将 GIMP 步骤以操作图像转换为 GEGL 函数调用?

我在 GIMP 中有一组步骤,我想在 Python 中实现自动化。如何将 GIMP 工具的功能转换为 GEGL 功能?

这开始于我尝试编写调用一些 GIMP 步骤的 python 脚本(因为我希望源代码存在于 lambda 函数中)但是,我很快发现 GIMP 运行 python 脚本而不是相反。

经过更多的挖掘和阅读,我发现了一篇将我指向 GEGL 的帖子。在确认 GEGL 存在 python 绑定后,我决定搜索有关其 API 以及 GIMP 如何使用 GEGL 的信息。到目前为止什么都没找到。

步骤列表或多或少:

  1. 曲线弯曲
  2. 高斯模糊
  3. 线性烧伤
  4. 改变饱和度
  5. 合并图层
  6. 变换
0 投票
1 回答
4059 浏览

gimp - Gimp:由于“GEGL-Error”而无法编辑图像

当我尝试编辑图像时,Gimp(Windows 上的 2.10)抛出“GEGL 错误”。几分钟前,我可以用 Gimp 编辑图像,但突然间,Gimp 拒绝每次编辑,声称

此操作没有可编辑的属性

??

在此处输入图像描述

到底是怎么回事?

问候

0 投票
0 回答
53 浏览

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

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

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

我做错了什么?

此处输入链接描述中的文档 指出“..使用'value'中提供的常量或来自辅助缓冲区的相应像素作为操作数。” 但也许不可能用gegl:multiply将每个颜色通道与一个单独的值相乘?在那种情况下,我想知道改用什么功能。

0 投票
0 回答
64 浏览

python - GIMP:POC 结果与减去混合模式的 GIMP 不匹配

我一直在尝试实现 GEGL 混合模式、颜色减淡减法,作为 Python 中 POC 的一部分。我遵循的流程是减法成功的道奇。我一直在为我的实现参考以下来源:

  1. SVG 合成规范:https ://www.w3.org/TR/SVGCompositing/#comp-op-property
  2. Color DodgeSubtract的 GEGL 实现。

颜色减淡混合工作正常,并且“几乎”与 GIMP 结果相同(对于某些像素,我得到的强度差异最大为 1,但这足以满足我的需要)。但是,我从 Subtract 获得的结果与在 GIMP 中观察到的结果完全不同。我理解 Subtract 是每个通道单独的简单的每个元素差异。

我使用线性 RGB。以下是我的 Python 实现:

因此,对于减法模式,我将 Dodge 操作的输出作为顶层,将原始源图像作为底层。不透明度设置为 100%,因为这符合我的目的并简化了实现。

代码的结构不干净。所以,请原谅我。首先,我想修复算法。

以下是我用于验证的双色测试图像: Source Image。左半部分的 RGB 三元组:(71, 66, 50),右半部分:(22, 255, 182)。

GIMP 和POC的颜色减淡输出。两幅图像的 RGB 三元组相同 - 左:(98、89、62);右:(24、255、255)。

以下是应用减法后的输出:GIMPPOC。我在最终的合成图像中看到了明显的不同: GIMP 图像的 RGB 三元组:(69, 60, 35) 和 (4, 255, 255) POC 图像的 RGB 三元组:(27, 23, 12) 和 (2, 0 , 73)

我试图在 SO 上找到类似的问题并发现了这个这个这个。但是,这些无法帮助我理解我一直在观察的行为。如果有人可以在这方面帮助我,我将不胜感激。

编辑(2021 年 13 月 10 日): 减去(根据文档):最大(背景 - 前景,0)。似乎 Subtract 不使用 alpha 信息进行混合。因为,我看到了结果的差异,所以尝试用 BG 图像独立测试减法。因此,尝试使用两个普通的 RGB 图像(alpha 设置为 1) - BG:(205,36,50),FG:(125,38,85)。结果颜色 Blended: (170, 234, 0) 不符合上面的数学。

0 投票
1 回答
84 浏览

photoshop - 减法混合模式

我一直在尝试将 GIMP (GEGL) 的一些图层混合模式实现到 Python。目前,我陷入了减法混合模式。根据文档Subtract = max(Background - Foreground, 0). 然而,在 GIMP 中用Background image = (205,36,50)和做一个简单的测试Foreground image = (125,38,85),得到的合成图像/颜色(170, 234, 0)与上面的数学不太相符。

据了解,Subtract 不使用 Alpha Blending。那么,这可能是一个合成问题吗?或者减法遵循不同的数学?更多细节和背景可以在单独的SO问题中找到。

编辑 [14/10/2021]:我尝试将此图像作为我的来源。对范围内归一化的图像执行以下步骤[0, 1]

  1. 应用了颜色减淡(之前没有进行转换sRGB -> linear RGB)并从我的实现中获得了与 GIMP 结果匹配的结果
  2. sRGB -> linear RGB颜色减淡和源图像的转换。[参考]
  3. 应用减法混合Background = Colour DodgeForeground = Source Image
  4. 重新转换linear RGB-> sRGB

我从 POC获得这个。左 RGB 三元组:(69,60,34);右 RGB 三元组:(3,0,192)。和 GIMP结果。左 RGB 三元组:(69,60,35);右 RGB 三元组:(4,255,255)

0 投票
1 回答
23 浏览

cmake - 无法将 gegl 库与 cmake 链接

我收到错误消息: :-1: Fehler: error: gegl-0.4: linker input file not found: No such file or directory :-1: Fehler: error: babl-01: linker input file not found: No such file或目录

因此链接器无法找到库或由于未知原因无法链接它们。

我努力了:

这也不起作用: set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -lm gegl-0.4 -L /usr/lib64/libgegl-04.so")

我的错误在哪里?