在 Gimp python-fu 中调整 RGB 通道的级别?

Adjust levels for RGB channels in Gimp python-fu?

根据文档,我可以通过 channels 属性 访问图像通道,但这给了我一个空列表。我怀疑只能通过此 属性 访问用户创建的频道。如何获取 R、G 和 B 通道的通道对象?

def python_myscript(img, drawable):
    print img.channels
>>> []

我需要这些频道来应用关卡。我想使用预设,但 python-fu 无法访问这些。这意味着我需要逐个通道应用级别更改,例如:

pdb.gimp_drawable_levels(layer, <CHANNEL NEEDED HERE>, ...)

我发现有通道常数。他们没有给我一个错误,但结果是“太白”而且我使用哪个常量似乎无关紧要。

pdb.gimp_drawable_levels(layer, RED_CHANNEL, 0, 0.567, False, 1, 0, 1, False)

通道常量似乎不适合这种用法。我查看了程序浏览器,通道红色实际上映射到整数 1 (HISTOGRAM-RED)

所以要修改红色通道级别

pdb.gimp_drawable_levels(layer, 1, 0, 0.567, False, 1, 0, 1, False)

According to the docs I can access image channels via channels property but this gives me an empty list.

这确实是显式 created/saved 频道(例如 Select > Save to channel)的列表。列表顶部的 R/G/B/A 通道有些虚拟,因为它们取决于图层模式和可见性。