标签: gimp

GIMP 方案脚本中的 number->string 和相关程序

我对 GIMP 脚本中的字符串到数字和数字到字符串的转换感到沮丧。我在 Windows Vista 中运行 GIMP 2.6.8。

我知道 GIMP 的内部 Scheme 实现会随着版本而变化,我似乎无法确定文档。据我所知,GIMP 的 Scheme 是 TinyScheme 的一个子集和/或支持 R5RS 标准程序。无论如何,当我想尝试新的东西时,我通常只是在打包的脚本目录中查看示例,因为这肯定会起作用,对吧?

例如,grid-system.scm 带有最新的 GIMP 版本并具有表达式,

(string-append (number->string obj) " ")
Run Code Online (Sandbox Code Playgroud)

这正是我想要的。但是,如果我在自己的脚本中使用 number->string,或者甚至在 GIMP 的脚本控制台中输入它(这是我通常测试我想做的新东西的方式),它会告诉我 number->string 是一个未绑定的变量:

> (number->string 3)
Run Code Online (Sandbox Code Playgroud)

Error: eval: unbound variable: number->string

来自 R5RS 的其他标准程序可以正常工作:

> (string-append "frust" "rated")

"frustrated"

所以,

1) 除了像搜索 GIMP 的源代码这样激烈的东西之外,是否还有一些当前 GIMP Scheme 脚本的潜在文档?

2) 我可以使用 GIMP 控制台来列出所有已定义的过程以找到我需要的东西吗?

3) 有没有其他人确认 number->string 没有为当前的 Windows 版本定义,即使它出现在打包的脚本中?我的网络搜索没有发现任何相关问题,并且完全卸载所有 GIMP 版本,回到最新版本让我陷入同样的​​困境。

scripting scheme gimp script-fu

3
推荐指数
1
解决办法
5885
查看次数

一次另存为多个文件(GIMP)

我有一系列.xcf图像,我想另存为.png。我可以打开每个文件并将其另存为.png,但由于有很多图像,因此需要花费大量时间。

有没有一种方法可以一次转换所有图像,或者有另一种方法我可以花更少的时间完成这项工作?

先感谢您。

png image gimp xcf

3
推荐指数
2
解决办法
1万
查看次数

Inkscape:如何在'保存'之前'收获'某些东西?

如果我打开一个新的Inkscape文档并输入

 TEST
Run Code Online (Sandbox Code Playgroud)

然后尝试保存它(如.svg)

整个页面都保存了.

我想要的是一个小小的图标,上面写着' TEST'.

周围没有空的地方.

有点像"裁剪"版.

graphics svg gimp inkscape

3
推荐指数
1
解决办法
3480
查看次数

python-fu 选择复制粘贴

我是 python-fu 的新手(第二天),所以我的问题可能看起来很天真:我想从“r400r.png”中选择一个矩形部分,将其旋转 90 度,然后将我的选择保存在“ r400ra.png”。

到目前为止,我尝试了以下几行:

for fv in range(400,401):
  fn='r%sr.png' % fv
  img=pdb.gimp_file_load('/path/'+fn,fn)
  drw=pdb.gimp_image_get_active_layer(img)
  img1=pdb.gimp_image_new(1024,1568,0)
  lyr=pdb.gimp_layer_new(img1,1024,1568,0,'ly1',0,0)

  pdb.gimp_rect_select(img,10,200,1422,1024,2,0,0)
  drw=pdb.gimp_rotate(drw,0,1.570796327)
  pdb.script_fu_selection_to_image(img1,drw)
  f0=fn[:5]+'a'+fn[5:]
  pdb.gimp_file_save(drw,'/path/'+f0,f0)
Run Code Online (Sandbox Code Playgroud)

“lyr”层之所以存在,是因为我的理解是它是必须的,尽管我不清楚为什么。“for”循环最终应该批量处理一堆文件;为了测试,它仅限于一个文件。我在尝试执行“script_fu_selection_to_image”时收到错误。

您能给我指出正确的方向吗?

谢谢,SxN

gimp python-fu

3
推荐指数
1
解决办法
4059
查看次数

ImageMagick:可以删除图片的中间吗?

问题

举个例子,有没有一种简单的方法可以裁剪掉 Google 徽标中的 o(提前知道它们的坐标)?

结果应该是“Ggle”,其图像宽度比原始图像更小,因为缺少 o。

不必使用 ImageMagick 来完成。它还可以是 Gimp、Inkscape 或任何其他可以从命令行编写脚本的 Linux 程序。

在此输入图像描述

linux bash imagemagick gimp inkscape

3
推荐指数
1
解决办法
1443
查看次数

如何通过 Gimp 从 shell 执行 Python-Fu 脚本

我试图找出一种简单的方法来执行我编写的 Python-Fu 脚本,该脚本在 Gimp 的 Python-Fu 解释器插件的单线程模式下工作,但由于Windows 非 POSIX/OS.Fork 限制在Pool.map_async(). 作为一种解决方法,我试图直接从 cmd shell 调用脚本,但无法找出正确的命令来完成它。我的 PATH 变量中有 gimp bin 目录,我正在尝试实现如下所示的内容...

c:\>gimp-console-2.8 --no-interface --batch "(python-fu execfile('myPyFuScript.py'))"
c:\>gimp-console-2.8 --no-interface --batch "myPyFuScript.py"
Run Code Online (Sandbox Code Playgroud)

有没有办法让 Gimp 使用它的 Python-Fu 模块从 Windows cmd shell 发出的命令中执行 python 脚本?

只是为了增加背景,我从以下文档中汲取灵感......

来自 Shell 的 GIMP Python 调用

所有这一切意味着您可以使用 (plug-in-script-fu-eval ...) 评估器直接从您的 shell 轻松调用 GIMP Python 插件,例如上面的插件:

gimp --no-interface --batch '(python-fu-console-echo RUN-NONINTERACTIVE "another string" 777 3.1416 (list 1 0 0))' '(gimp-quit 1)'
Run Code Online (Sandbox Code Playgroud)

python shell gimp python-fu

3
推荐指数
1
解决办法
4193
查看次数

Gimp 批处理打开为图层

我在使用 gimp 批处理模式时遇到了问题。我想要做的就是打开 2 个 png 文件作为一个图像的图层并将它们一起保存为图标 (.ico)。

问题:Gimp 只是将两个图像作为单独的窗口打开,而不是在一层中打开两个图像。

我的代码如下所示:

(define (merge-to-icon filename layername endname)
(
    let* 
    (
        (image (car (gimp-file-load RUN-NONINTERACTIVE filename filename)))
        (drawable (car (gimp-image-get-active-layer image)))
        (adlayer (car (gimp-file-load-layer RUN-NONINTERACTIVE image layername)))
    )
    (gimp-image-insert-layer image adlayer 0 0)
    (set! drawable (car (gimp-image-get-active-layer image)))
    (gimp-displays-flush)
    (gimp-file-save RUN-NONINTERACTIVE image drawable endname endname)
))
Run Code Online (Sandbox Code Playgroud)

gimp script-fu

3
推荐指数
1
解决办法
2627
查看次数

Gimp用python选择了区域坐标

我想获得图像的选定区域px坐标.我使用gimp,我可以在python fu控制台上看到它作为实时调试吗?

我打算在图片上自由选择一些区域,我想在控制台上学习它.哪个坐标位于所选区域?

python gimp coordinates

3
推荐指数
1
解决办法
1423
查看次数

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

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

def python_function(img, layer):
    layer = img.layers[0]
Run Code Online (Sandbox Code Playgroud)

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

[[[ 111.  179.  245.]
  [ 111.  179.  245.]
  [ 111.  179.  245.]
  ..., 
  [  95.  162.  233.]
  [  95.  162.  233.]
  [  95.  162.  233.]]

 [[ 111.  179.  245.]
  [ 111.  179.  245.]
  [ 111.  179.  245.]
  ..., 
  [  95.  162.  233.]
  [  95.  162.  233.] …
Run Code Online (Sandbox Code Playgroud)

python plugins numpy gimp gimpfu

3
推荐指数
1
解决办法
1123
查看次数

在 script-fu (TinyScheme) 中连接字符串和变量

我正在尝试编写一个简单的 script-fu 函数。我希望它采用一个filename作为参数并从文件夹(其路径将被硬编码)加载该文件。

基本代码:

(define (myfunction inputfile)
    (let * ( (image (cat (file-png-load 1 inputfile inputfile)
                                          ^^^^^^^^^
...
Run Code Online (Sandbox Code Playgroud)

这是我想用 ecmascript 语法实现的目标:

"foldername/" + inputfile
Run Code Online (Sandbox Code Playgroud)

我查看了Scheme 文档,但没有看到变量+字符串连接的示例......

https://groups.csail.mit.edu/mac/ftpdir/scheme-7.4/doc-html/scheme_7.html#SEC61

提前致谢,祝您有美好的一天。

scheme gimp script-fu

3
推荐指数
1
解决办法
1816
查看次数