问题标签 [gimpfu]

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 回答
308 浏览

modal-dialog - 在 gimp python-fu 插件中可以创建/调用模式对话框(和/或注册一个只能作为临时过程添加的过程?)

我正在尝试添加一个程序以在插件弹出模式对话框。其目的是在插件控制流中的指定步骤查询响应(不仅仅是在其开始时获取参数)。

我尝试过使用 gtk - 我得到一个对话框,但它是异步的 - 插件继续执行。它需要作为同步函数运行。

我已经尝试注册一个插件,以便利用 gimpfu 启动对话。它本身就可以工作;它在查询时显示在程序数据库中。但我似乎永远无法从另一个插件中实际调用它——无论我尝试了多少排列,它要么是执行错误,要么是参数数量错误。

[所有这些废话背后的原因:我已经为 PaintShopPro 编写了很多扩展 Python 脚本。我已经编写了一个应用程序包(使用 App.Do、App.Constants、Environment 等,让我开始将这些脚本移植到 GIMP ——是的,它是不正当的,是的,有时代码只需要重写,但是为了我在 PSP.API 中实际使用的很多东西就足够了。

但是,调试和编写模块与 witch 押韵。所以。我正在尝试添加对 psp 的“SetExecutionMode”(即交互式)的仿真。如果设置,预期的行为是 App.Do() 方法将通过弹出一个简单的消息对话框在运行适用的 psp 仿真代码之后/之前“暂停”。]

0 投票
1 回答
892 浏览

python - GIMP Python插件加载2个图像作为图层

我正在尝试为 gimp 制作一个插件,它将两个图像作为单独的图层打开并转换其中一个(更多内容见下文)。我正在使用 GIMP 2.10.12。

我一直在努力为 GIMP 的 Python 接口找到合适的完整文档,并且主要是根据我能找到的代码片段来工作。这是我到目前为止所拥有的:

这种做我想要的,但有几个问题。

问题 1

目前我正在使用gimp.Image(100, 100)打开一个新图像。这意味着我必须在每次加载新图像对时将画布拟合到图层并调整缩放和位置。

有没有办法在打开它之前从 pdb 中找到图像的大小,还是我必须为此使用另一个库(如 PIL)?我试图将我的插件的依赖项保持在最低限度。

这两个图像保证具有相同的大小。

由于 File->Open 会自动将画布调整为图像大小,我希望有一个很好的方法来实现这一点。

问题2

我想自动创建并将当前工作文件设置为result_f + '.xcf'(参见上面的代码) - 这样 File -> Save 会自动保存到这个文件。这在pdb中可能吗?

问题 3

最重要的是,我目前将蒙版图像保存为黑白图像。将蒙版加载为新图层后,我想将黑色转换为透明,将白色转换为绿色(0,255,0)。此外,由于它们被保存为 .jpg 图像,因此白色和黑色不一定是 255 和 0 强度,但可以稍微偏离。

如何在我的插件中自动执行此操作?

0 投票
2 回答
810 浏览

python - 无法将第三方 Python 包导入 GIMP 2.10,以便它们可用于编写 GIMP 插件

我的目标是导入几个第三方 Python 包以用于我的 GIMP 安装。这将允许我在开发 GIMP 插件时使用这些包。我注意到一些可能有用的目录。它们如下:

C:\Program Files\GIMP 2\32\lib\python2.7

此目录包含一个 site-packages 文件夹,其中包含请求和 pip 等包。

C:\Program Files\GIMP 2\32\bin

该目录包含一个 python.exe。当我在此目录路径的提升 cmd 中运行 python --version 时,输出是 Python 2.7.16,我假设它是 GIMP 2.10 的 Python 版本。这很重要,因为我的程序文件中有自己的 Python 3.8.0 安装。如果我在 cmd 中此路径之外的任何位置,则输出的版本为 3.8.0。

我已将这些目录添加到我的 PATH 系统变量并尝试运行 pip install 但输出告诉我我已经安装了请求的第三方软件包。问题是它们安装到我的 Python 3.8.0 安装中。我正在尝试在 GIMP 的 Python 环境中运行 pip install 。

任何建议将不胜感激。

0 投票
1 回答
177 浏览

python - 在哪里可以找到 GIMP Python Object References,我目前正在寻找 Vectors 和 Points 的属性

我正在尝试用 GIMP Python 编写脚本,但似乎找不到任何有关 GIMP Python 对象的在线文档,例如图像、图层、路径、矢量、笔画等。

我环顾了 developer.gimp.org 和旧的谷歌,但似乎找不到任何东西。

我还尝试查看 GIMP 安装文件,我按照 gimpfu.py 找到了 PF_VECTORS 到 gimp.Vectors 的对象映射,但这会将我带到我无法查看的 gimp.pyd 文件。

任何提示将不胜感激,谢谢。

0 投票
1 回答
397 浏览

command-line - 如何使用 GIMP 从控制台旋转图像?

我正在尝试使用控制台命令运行 GIMP。我想要它做的就是将图像旋转 90 度。我将 GIMP 添加到我的环境变量中,以便我可以从控制台窗口调用它。我还将我要旋转的图片放在我的根控制台目录中,以便于打开。

我阅读了GIMP 批处理模式指南并提出了以下命令:

“plot.png”后面的“0”应该告诉它旋转90度。这将打开一个 GIMP 输出窗口并输出两条消息“批处理命令执行成功”。但是,它从不旋转图像。

知道为什么我输入的命令不起作用吗?

0 投票
1 回答
57 浏览

plugins - 在一个gimp(pythonfu)插件中,有没有办法让插件本身来确定它的安装路径?

假设一个 gimp (PyGIMP) 插件需要访问一些随插件分发的任意图像文件。鉴于用户可以在任何地方安装该集合,插件本身是否可以确定自己的安装路径以用作这些资源(例如图像)的路径前缀?我曾尝试搜索 pdb,但我一定遗漏了一些东西。

0 投票
0 回答
145 浏览

python - 通过 Python-FU 从系统剪贴板创建新图像

我正在尝试将系统剪贴板中的当前图像粘贴到新图像中,就像File -> Create -> From Clipboard.

在 python-fu 控制台中仔细阅读对象浏览器,我能找到的最有希望的是:

但它会返回None并且不会创建新图像。此外,它的描述特别说明它适用于内部 GIMP 剪贴板,而不是系统剪贴板。

也是如此edit-gimp-paste- 描述清楚地表明它没有用于系统剪贴板。

有谁知道是否有另一种方法可以进入系统剪贴板?还是绝对不可能这样做,也许是出于安全原因?

0 投票
1 回答
966 浏览

python - Gimp Python 脚本未显示在菜单中

我正在尝试编写一个 python-fu 脚本来简单地将警告打印到错误控制台。我在 schema-fu 上也能正常工作。

但它没有显示在 python-fu 的菜单上。

我在 gimp 中为插件配置的目录中有脚本:/Users/myusername/Library/Application Support/GIMP/2.10/plug-ins

文件名为:python-fu-hello-warning.py

在 MacOS Catalina 版本 10.15.3 中运行它。GIMP 的版本是 2.10.14。

这是代码:

我究竟做错了什么?

0 投票
1 回答
1675 浏览

python - Gimp python-fu 脚本选择具有给定颜色的所有内容并将其更改为不同的颜色

我正在编写一个插件脚本,它将打开一个文件,按颜色选择,将选择更改为新颜色,将图像另存为新文件。

我不知道如何将颜色更改为新颜色。有人可以提供指导吗?

这是我到目前为止所拥有的:

0 投票
1 回答
505 浏览

gimp - 如何更改 GIMP 中的文本图层?

我有一个用作模板的 gimp 文件。

我正在尝试找到一种编写脚本的方法,以便我可以轻松地将该文件中的模板文本替换为我指定的内容。

干杯