GIMP Script-Fu: "Error: <: argument 1 must be: number"

GIMP Script-Fu: "Error: <: argument 1 must be: number"

我在编写应用投影的 GIMP 脚本时遇到问题。所以这就是当您从控制台中拉出脚本时的样子:

(script-fu-drop-shadow run-mode image drawable value value value color value toggle)

这些是我输入的值:

(script-fu-drop-shadow 1 image layer 0 0 3 '(115.9 200.9 245.1) 1 0)

当我尝试 运行 它时,出现以下错误:

Execution error for 'MUA Portrait Outline - Blue Glow':
Error: <: argument 1 must be: number

我想我并没有真正理解我需要输入的所有值。

  1. run-mode 很简单,因为它说要使用 1 或 0。
  2. 根据我之前尝试过的脚本,我很确定我将 image 保留为 image,因为它仅用于当前图像。
  3. 我不太确定 drawable 是什么,但我读到可绘制对象包含图层,所以我放了 layer。不确定这是否准确。
  4. 接下来的 3 个 value 变量用于 x 偏移量、y 偏移量和模糊半径。直截了当。
  5. 我不太确定我输入的 color 是否正确,因为我从来没有真正使用过要求颜色的脚本,但我认为我只是根据一些研究输入正确在线完成。
  6. 最后一个 value 变量也很简单,因为它是阴影的不透明度。
  7. 我不知道要为 toggle 设置什么。它说它为此接受 INT32,所以我想我应该只输入 0。我尝试进行一些在线研究,但找不到任何东西

如有任何帮助,我们将不胜感激!我不精通 Script-fu。我在这里和那里尝试了一些东西,但我不太了解正式的东西。请尽可能简单地解释事情:)

如果您删除 run-mode 参数,它会起作用。

(script-fu-drop-shadow 1 3 3 3 3  '(115 200 245) 50 0)

不要问我为什么,我的脚本是在Python :)

就此而言,该脚本中的大部分代码都在处理交互使用时最有意义的事情。在大多数情况下,您的代码可以通过选择 alpha、添加图层、填充选区、模糊它和调整偏移量来完成。

你必须找到当前图像和当前可绘制对象的数量(如果你正在处理多个图像,这些不必是 13),然后调用它而不用 run-mode:

> (gimp-image-list) 
(1 #(1)) <-- All images, current image is one number from vector #(1)

> (gimp-image-get-active-drawable 1)
(3) <-- Current drawable of current image

> (script-fu-drop-shadow 1 3 0 0 20 '(255 0 0) 100 0)
(#t)

如果您不知道某些参数的含义,您可以查看 Procedure Browser (Help → Procedure Browser)- toggle 参数是 允许调整大小,您也可以使用 TRUEFALSE 作为值,因为它们的计算结果分别为 10

编辑:如果你想运行将其作为 .scm 脚本,请按照下列步骤操作:

  • .scm 文件应如下所示:
(define (script-fu-my-script image drawable)
    (script-fu-drop-shadow image drawable 0 0 20 '(255 0 0) 100 0))

(script-fu-register "script-fu-my-script"
  _"Add _Drop _Shadow..."
  _"Add drop shadow"
  "Author's name"
  "Author's name"
  "12/9/21"
  "*"
  SF-IMAGE       "Input image" 0
  SF-DRAWABLE    "Input drawable" 0)

(script-fu-menu-register "script-fu-my-script"
                         "<Image>/My_Scripts/Drop")
  • 为您的脚本找到正确的文件夹:Edit -> Preferences -> Folders -> Scripts 并将您的 .scm 文件移动到这些文件夹中的一个。
  • 重新启动 GIMP 或刷新您的脚本:Filters -> Script-Fu -> Refresh Scripts
  • 右击图片,My Scripts -> Drop -> Add Drop Shadow