问题标签 [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 回答
636 浏览

python - Gimp,python-fu:RuntimeError:pdb.gimp_image_merge_down 中的执行错误

我的目标是将一个图像放在另一个图像上并将生成的图像保存为 jpeg 文件。第一个是新的,它有 450x300 尺寸和白色背景。第二个是从文件加载的,它的可见部分作为图层添加到第一个。

我已将以下 python 脚本添加到/usr/lib/gimp/2.0/plug-ins文件夹

通过运行它

返回

(gimp:4224): GLib-CRITICAL **: g_error_new_literal: assertion 'domain != 0' failed Traceback (last last 最近调用): File "/usr/lib/gimp/2.0/python/gimpfu.py", line 821 ,在 _run return apply(func, params[1:]) 文件“/usr/lib/gimp/2.0/plug-ins/my.py”,第 31 行,按比例 finalLayer = pdb.gimp_image_merge_down(newImage,tdraw,1 )RuntimeError:执行错误批处理命令遇到执行错误:错误:(:1)python-fu-my的程序执行失败

怎么了?如何正确地做到这一点并了解问题的根本原因。

编辑。遵循 xenoid 的建议: 1) 使用gimp_image_merge_down导致logo.jpeg的白色背景为 450、300 大小

2) 使用newImage.add_layer(visibleLayer, 0)会导致原始png图像作为输入以jpg格式存储

0 投票
1 回答
458 浏览

gimp - GIMP Python-Fu 脚本不使用超过 4 个参数运行

我正在尝试为 GIMP 编写 Python-Fu 插件,但添加超过 4 个输入参数(包括 Image 和 Drawable 参数)将导致脚本根本无法运行。我已经尝试过使用各种输入参数类型,它们都产生相同的结果。有没有人知道为什么会这样?我错过了一些明显的东西吗?

编辑:

下面是完整的、功能齐全的脚本,包括 Python 代码。

0 投票
1 回答
1325 浏览

python - Gimp,python-fu:将图层与图像中的背景图层对齐

以下代码用于将图层与底部背景图层对齐。

预期的行 pdb.gimp_layer_scale(visibleLayer, 435, 100, True)可以完成这项工作,但生成的文件在背景白色图层的左上角包含徽标图层。如何正确地将图层与底部背景图层对齐?

0 投票
1 回答
4159 浏览

python - 在python 3中运行linux命令

在 linux bash 中运行以下命令成功:

输出:

被打印并且子进程退出

用 python3.5 运行它失败:

结果输出:

并且子进程卡住了。

我不确定有什么区别以及如何在 python 中实现等效行为。有没有办法将 bash 命令作为字符串运行?

0 投票
2 回答
1084 浏览

python - 在 Gimp 中使用 python-fu 统一缩放图像层

我的目标是使用用于 gimp 的 python-fu 库以统一的方式缩放图像。这意味着指定宽度/高度应该足以进行缩放。Gimp 应该相应地改变高度/宽度。

在 Gimp GUI 中,它使用标记的切换进行设置:

在此处输入图像描述

我正在使用以下行来缩放图像

将图层缩放到指定的宽度和高度。

无法按照上面指定的方式统一执行此操作。

0 投票
2 回答
10632 浏览

python - 如何从命令行使用 gimpfu 运行 python 脚本?

我正在尝试使用 gimp 2.8.22 的功能将 pdf 转换为 jpeg,我想使用我的 windows cmd 中的 gimpfu 库使用 python 脚本来做到这一点(我已经安装了 python 3.6.1)。

现在,我不想用示例脚本来做到这一点:

我尝试从我的 cmd 运行脚本,如下所示:

但是,无论我做什么,我总是会收到相同的错误消息:

(gimp-2.8:1020): LibGimpBase-WARNING **: gimp-2.8: gimp_wire_read(): 错误

编辑:好的,谢谢。我省略了接口语句,还尝试了最简单的示例来找出问题所在:

当我从 Gimp 本身运行该脚本时,该脚本实际上可以工作,但是当我尝试从我的 cmd 运行它时,Gimp 打开另一个 cmd 并说:Error: ( : 1) eval: unbound variable: hello_world

有人知道我在这里缺少什么吗?

0 投票
1 回答
657 浏览

python - Python 和 Gimp:如何正确杀死 gimp 进程?

我正在使用由照片软件 gimp 调用的 python 脚本来将 pdf 转换为 jpg。到目前为止,脚本运行良好,但完成后,gimp 会打开一个 cmd 窗口,说“按任意键退出”。这个 cmd 窗口是 gimp.exe 进程,我无法用我的脚本杀死它(我不想每次运行我的脚本时都输入用户输入)。

我尝试了类似的python命令os.system("taskkill /im gimp-2.8.exe")sys.exit(0)但它们都不起作用。

这是我的python脚本:

这就是我从 Windows 命令行调用我的 gimp 脚本的方式:

我原以为 gimp 命令gimp_quit(1)会关闭窗口,但事实并非如此。

这似乎是一个简单的问题,但我已经花了几个小时在这上面,所以任何帮助表示赞赏。谢谢。

0 投票
2 回答
2496 浏览

gimp - 如何在不更改字体的情况下更改 python-fu gimp 脚本中的文本?

我有一个主图像,我在 gimp 中编辑它以获得所需的外观和感觉。然后,我想使用 python 脚本来生成一堆新的图像,其中的文本(在几个不同的层上)发生了变化。我想保留字体、大小、斜体或不斜体等。

我已使用此功能成功更改了批处理脚本中的文本:

问题是这也会覆盖我在主文件中选择的字体和其他文本参数。有没有办法只更改文本并单独保留字体?

或者,一种更笨重的方法是在更改之前尝试保存有关字体的所有重要信息,然后尝试重新应用它。这是我尝试过的:

不幸的是,这似乎并不能始终如一地工作。看起来 get_font 和 get_font_size 命令为其中一个图层检索正确的字体,但不为其他图层检索正确的字体。它似乎没有保留斜体等,我不希望它保留文本是否带下划线。

第三种选择是在字体中硬编码。我需要浏览所有文本字段,弄清楚字体参数是什么,并为每个参数硬编码。然后,如果我重新设计主文件(我会做很多),我必须重复这个过程。这不应该是必要的。

0 投票
1 回答
412 浏览

pdb - GIMP python-fu调用函数plug_in_beautify'参数数量错误'

我尝试在 python 命令行中使用很棒的 Beautify 插件,但我无法以正确的方式调用该函数!

这是我的代码:

那么,如果我的函数期望 5 而我输入 5,为什么我的函数有“错误数量的参数”?

谁能帮助我正确的语法?

0 投票
1 回答
1280 浏览

python - Gimp Python 插件 gimp.Image 作为 numpy 数组

我正在为 GIMP 开发一个 python 插件,我想获得一个层的 RGB 矩阵作为一个 numpy 数组。要访问 python 插件中的层,我使用下面的代码:

我想创建layer一个变量,而不是 gimp.Image 变量,一个 numpy 数组,其中包含每个像素的 RGB 值。我在其他 nonGimp-python 代码中使用的是下一行:frame2 = misc.imread('C:\Users\User\Desktop\image2.png').astype(np.float32). 如果我打印frame2,我会得到一个这样的矩阵,其中包含每个像素的 RGB 值:

有什么方法可以将 gimp.Image 类型变量转换为 numpy 数组,而无需将其保存在文件中并使用 Scipy 重新加载它?

谢谢。