问题标签 [python-fu]
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.
python - Gimp 菜单中未显示 Python-fu 脚本
我一直在Gimp:python 脚本没有显示在菜单中,它对我没有帮助。这是我一步一步尝试的:
1.我在 Mac OS X 10.9.5 上从命令行运行 Gimp 2.8.16,gimp
因为我的.bashrc
文件包括
我查看终端输出,我看到很多消息,但没有弹出任何问题(你想要这里的转储吗?)。我一开始就看到了,Enabling internal Python...
所以应该很好。
2. Filters > Python-Fu > Console 调出控制台,有
——所以,python 似乎又在工作了。
3.因为这里的这个技巧,我尝试运行一个 Python 脚本。我打开一张图片并运行过滤器 > 渲染 > 云 > 雾。像魅力一样工作——在控制台中,当窗口启动时,我确实收到了一些类型转换警告:
我搜索了我的计算机,foggify.py 实际上在其中,/Applications/GIMP.app/Contents/Resources/lib/gimp/2.0/plug-ins/foggify.py
因此这证明 Python 正在工作,但不能证明它正在加载脚本。我有点困惑,因为foggify.py
只有 77 行,而不是 30312。
4. GIMP > Preferences > Folders > Scripts 显示 GIMP 应该为脚本加载以下目录:
我没有使用/Applications/GIMP.app/Contents/Resources/share/gimp/2.0/scripts
,但它有很多*.scm
文件(所以,可能都在 Scheme 中)。我自己从来没有在这里添加任何东西。
5.我只有一个脚本:ls -l "/Users/julio/Library/Application Support/Gimp/2.8/scripts"
yield
(没有其他的)
6.这是我的minimal.py
:
7.我已经在上面指示的目录中运行gimp
,我在“工具”菜单中看不到任何“最小”项。minimal.py
scripts
我还尝试了下面的变体,它也不起作用:
python - 子进程/Gimp 命令行批处理最大参数长度比预期的短
我有一个简单的 Python GUI,它收集图像文件位置列表,传递给subproccess。run,它以 gimp-console exe 为目标以修改它们。在处理具有相当长目录的大量文件时,我发现Subprocess不再执行。
减少文件数量和将目录更改为根驱动器都是单独有效的解决方案,这向我表明问题在于传递给 Subprocess 的字符串的长度是问题所在。使用subprocess进一步测试后。list2cmdline我发现这个数字介于 1124 和 1159 个字符之间(似乎是一个足够小的范围,我没有尝试获得更好的结果)。
显然,虽然我可以围绕这个限制进行编程,但困扰我的是这个数字与我在这篇文章和这里的另一篇文章中发现的限制非常不同。如第二篇文章的答案中所述,默认情况下,shell对于subprocess是关闭的。run,这应该给它最多 32,768 (接近我得到的 30 倍),并且为了确保我不会发疯,我明确地将shell设置为 False (可以预见,没有效果)。
我专门针对 GIMP 进行了一些搜索,但找不到任何相关信息。
所以,根据问题的标题:为什么我传递给子进程的最大命令行长度与我(大概)应该期待的如此不同?
由于 os 可能与它有关,因此我使用的是 Windows 10 64 位。此外,虽然代码应该不是问题,因为 - 如前所述 - 它确实可以通过较短的调用成功运行,但为了完整起见,我将其包括在内:
编辑:不是Python Script 的副本,args 未转移到 Script,因为该帖子上的问题是 args 丢失:compare-subprocess not execution to begin with due to length of args (ie- args 被接受并正确执行前提是运行命令的总长度在某个阈值以下)。该问题的解决方案是更改 python 文件扩展名或附加运行命令:比较 - 这篇文章运行非 python 可执行文件。
selection - Gimp python-fu 如何选择多边形?
问题
我需要对图像进行数百次多边形选择。为了提供帮助,我一直在尝试使用 python 控制台创建一个脚本,该脚本将以计算的方式执行此操作(相同大小的区域,数百个不同的起点)。我在 Windows 10 机器上使用 GIMP 2.8.18。
问题是函数 pdb.gimp_image_select_polygon 似乎不起作用。
代码
这是我在 python 控制台中尝试做的事情的基本内容:
当它运行时,什么也没有发生。OTOH,如果我使用另一个选择功能,我会得到一个选择:
使用 gimp_image_select_polygon 我没有得到任何回溯错误,所以我知道我有正确数量的参数和正确的参数类型。我尝试了各种方法,但无法在网上找到太多帮助。
有没有人看到我的代码有问题,或者 GIMP 中的 python 引擎完全没有问题?
python - gimp python插件:如何触发另一个用户输入
情况: 我的 gimp python 插件向用户显示了一个带有两个选项的下拉框[".jpg", ".png"]。
问题: 如何根据第一个输入显示带有条件内容的第二个输入窗口?
- .jpg --> “质量”范围滑块 [0 - 100]
- .png --> “压缩”范围滑块 [0 - 9]
换句话说: 如何从插件的主要功能中触发(注册的)带有用户输入窗口的插件?
python - Windows 上的 GIMP - 从命令行执行 python-fu 脚本
在 Windows 环境中,我想调用 GIMP 以执行 python-fu 脚本(通过 BAT 文件),但我正在使用的命令行调用不会产生预期的结果。
例如,考虑以下名为 的 python-fu 脚本makeafile_and_quit.py
,它位于我的 GIMPplug-ins
文件夹中。其目的是加载现有图像并以不同的名称保存:
如果从 GIMP 的“GUI 实例”调用脚本,脚本将完美执行,通过菜单调用脚本。它会在与源文件相同的文件夹中生成一个以“_2.jpg”结尾的新文件。
使用以下命令从命令提示符调用时行为不同:
创建一个 GIMP 实例,然后关闭,但即使batch command executed successfully
看到消息,也不会创建文件。
如何从命令行重复与“GUI 实例”完全相同的行为?
python - 关闭当前文件/视图/显示而不保存它或被要求这样做
我在 Gimp 中打开了一个 xcf 文件“BY HAND”。
如何在不询问我是否要保存它的情况下关闭此文件(这也是当前视图/显示)。
我需要注册函数来给我“当前显示”类似 PF_Display ...(如图像和可绘制)
然后我会去使用:
pdb.gimp_display_delete(显示)
如何获得与按“CTRL + W”或按“x”按钮相同的结果?
到目前为止,没有什么对我有用:
这是非常基本的,我已经用谷歌搜索了很多,没有任何帮助,我失败了......
gimp - python-fu/ 映射到对象:错误的参数类型
在一遍又一遍地挖掘我的代码之后,我非常绝望地在网上询问,希望有人能帮助我。我正在尝试开发一个 python-fu 脚本,其中一个重要部分是将图像映射到一个对象。但是每当我尝试打电话pdb.plug_in_map_object()
时,控制台都会说
File "<input>", line 29, in <module> TypeError: wrong parameter type
。我当前的代码如下所示:
(请注意,这不是我在脚本中使用的代码,我使用这些丑陋且毫无意义gimp.Layer
的代码让 python 控制台接受它。我希望能够在填写正确的值之前正确调用该函数。)
错误中提到的第 29 行是最后一行,只包含 1PF_INT32
和 8 PF_DRAWABLE
。这正是我发现的最旧和最新(GIMP git)源代码中提到这些参数的方式(如果您不想下载最新的 gimp 代码,我在此处上传了相关文件)。
有人可以告诉我我做错了什么吗?
python - Gimp python-fu:如何从 1 jpg 和 1 png 创建和保存多层 xcf?
我有一个巨大的目录列表,其中包含每 2 个图像:1 个 jpg 文件和 1 个 png 文件;我想从外部脚本创建与 jpg 关联的所有 .xcf 作为第一层。在尝试使用 python 之后,我一直沉浸在方案解释和其他相关主题中......有人可以帮助我做出这样的命令并理解它吗?
image-processing - GIMP 如何使用 python 控制台(或制作插件)在图像之间导航
注意:这仅适用于 Windows,因为在 Windows 上为(编辑:GDK)应用程序使用标准的免费自动化工具存在固有问题。如果有比 AutoIt 在 Windows 上使用自动化 GDK 更好的方法,请告诉我)
我正在尝试主要使用 AutoIT 自动化 GIMP 中的一些任务,这很简单,但是,从打开的图像移动到打开的图像是有问题的。到目前为止,我有两种方法(使用 AutoIt):自动单击箭头(在单窗口模式下)从图像滚动到图像,以及 2)使用左右箭头键来做同样的事情。
两种方法都存在问题。对于第一种方法,在 AutoIt 脚本完成处理之前,我无法对我的计算机执行任何其他操作,因为它占用了我的鼠标。我们每次都在谈论 100 张左右的图像。
对于它需要的第二种方法,我不知道正确的词,但顶部的“缩略图栏”,缩略图栏是“活动的”,否则使用箭头键不起作用。您可以通过单击其中的图像使其处于活动状态,一次或两次取决于状态,但是我必须做各种体操才能知道我应该使用哪个实际图像才能继续。
这让我得出结论,最好的解决方案是使用某种编程方式,在 Python 或 Scheme 插件中(或一两个简单的命令,我可以让 AutoIt 简单地粘贴到控制台中),让我可以非常快速地在图像之间移动可靠,不突兀,简单的方法。
先感谢您。开发
python - GIMP Python,基于路径的选择与菜单项“从路径”不同
我在 GIMP 2.8 中创建了一个带有多个路径的图像,使用Select -> To Path
. 现在我想创建一个 Python 脚本,它将遍历所有这些路径,根据每个路径进行选择,将选择剪切到新图像,做一些额外的事情,并将每个剪切保存到单独的 PNG 图像。
到目前为止,我已经有了这个 Python 脚本,我可以从Filters -> Paths
一个菜单项开始:
但是,问题在于 python 函数gimp_image_select_polygon
没有按预期进行选择。选择似乎在贝塞尔曲线(或类似的东西)上有一些差异,这与它所基于的路径并不完全相同。另一方面,菜单项From Path
确实可以正常工作,它会根据路径进行完美选择。见下图:
所以我的问题是:
Select -> From Path
菜单项和 GimpPython 函数有什么区别gimp_image_select_polygon
- 我是否
gimp_image_select_polygon
错误地使用了该功能,还是应该使用其他功能? - 失败了,有没有办法
From Path
直接从 Python 调用菜单项?