GIMP“错误:评估:未绑定变量:新图像”执行脚本时

如何解决GIMP“错误:评估:未绑定变量:新图像”执行脚本时

我下载了一个脚本来将图像批量转换为 .gbr 并且它已经过时并且不适用于当前版本的 GIMP。我对 script-fu 了解不多,所以当我收到第一个错误“错误:设置!:未绑定变量:a”时,我进行了搜索,发现在 GIMP 2.4 之后最初定义变量时,您使用“定义”而不是“设置!”。

我修复了所有这些实例,然后收到了这个新错误“错误:评估:未绑定变量:新图像”。该错误对于它所谈论的“newimage”的引用非常模糊,因此我开始将声明的变量从“define”更改回“set!”因为我知道这给了我一个错误,这意味着代码没有执行它有问题的“newimage”的引用。

我更改了“filename2”并获得了“set!”错误出现在块的末尾,所以我知道它在最后一个块中发生了一些事情。

我真的不想通读 GIMP 手册中的 script-fu 教程,虽然我已经阅读了一些(我唯一熟悉的代码是 C++),但在更好地理解代码后学习可能会得到我的答案。我还有一门数字绘画课程,我需要重新学习,所以希望有人可以阐明这个问题。提前致谢。

    (define (brush-batch load opt name filename spacing location)
(define a(cond (( equal? opt 0 ) ".jpg" )
               (( equal? opt 1 ) ".bmp" )
               (( equal? opt 2 ) ".xcf" )
               (( equal? opt 3 ) ".png" )
               (( equal? opt 4 ) ".gif" )))

(let* ((filelist (cadr (file-glob (string-append load "\\*" a)  1))) 
       (s 1))
(while filelist
    (let* (
        (loadfile (car filelist))
        (image (car (gimp-file-load RUN-NONINTERACTIVE loadfile loadfile)))
        )


(gimp-image-flatten image)
(define drawable (gimp-image-get-active-drawable image))
(if (= 1 (car (gimp-selection-is-empty image)))
(gimp-selection-all image))
(gimp-displays-flush)
(gimp-edit-copy (car drawable) )
(define selection-bounds (gimp-selection-bounds image))
(define sx1 (cadr selection-bounds))
(define sy1 (caddr selection-bounds))
(define sx2 (cadr (cddr selection-bounds)))
(define sy2 (caddr (cddr selection-bounds)))
(gimp-image-delete image)
(define swidth  (- sx2 sx1))
(define sheight (- sy2 sy1))
(define newimage (gimp-image-new swidth sheight 0))
(define newlayer (gimp-layer-new (car newimage) swidth sheight 1 "newlayer" 100 0))
(gimp-image-add-layer (car newimage) (car newlayer) 0)
(gimp-drawable-fill (car newlayer) 3)
(gimp-edit-paste (car newlayer) 0 )
(gimp-image-flatten (car newimage))
(define active (gimp-image-get-active-drawable (car newimage)))
(gimp-desaturate (car active))
(gimp-image-convert-grayscale (car newimage))
(gimp-displays-flush)
(gimp-selection-all (car newimage))
(define filename2 (string-append location "/" filename (string-append (number->string s))".gbr"
))
(file-gbr-save 1 (car newimage) (car active) filename2 (string-append name (number->string s)) spacing (string-append name (number->string s))))
(define s (+ s 1))
(gimp-image-delete (car newimage))
(define filelist (cdr filelist))))
)
(script-fu-register "brush-batch"
            "<Toolbox>/Xtns/Script-Fu/Gimp-talk.com/Brush-batch..."
            "turns a folder of files into brush's works with jpg,bmp,xcf,png and gif"
            "Karl Ward"
            "Karl Ward"
            "April 2006"
            ""
            
            SF-DIRNAME    "Load from" ""
            SF-OPTION     "File Type"'("jpg" "bmp""xcf""png""gif")

                SF-STRING     "Brush Name" "name"
                SF-STRING     "File Name" "filename"
                SF-ADJUSTMENT "spacing"         '(25 0 1000 1 1 1 0)
                SF-DIRNAME    "SAVE TO FOLDER" "")


   

解决方法

如果您向我们指出原始脚本的来源会更容易,以便我们建议您如何使其与当前版本的 GIMP 兼容。

只需将所有“定义”更改为“设置”即可!显然不是真的,所以我去这里找到了原文:https://www.deviantart.com/kward1979uk/art/GIMP-Batch-brush-converter-31179822

您现在必须先分配变量,然后再尝试使用 set! 为它们重新分配值,只需将它们设置为顶部的 let* 部分中的某些内容即可完成。此外,while 条件现在需要对非空进行测试。

(define (brush-batch load opt name filename spacing location)
  (let* (
        (a
          (cond 
            (( equal? opt 0 ) ".jpg" )
            (( equal? opt 1 ) ".bmp" )
            (( equal? opt 2 ) ".xcf" )
            (( equal? opt 3 ) ".png" )
            (( equal? opt 4 ) ".gif" )
          )
        )
        (filelist (cadr (file-glob (string-append load "\\*" a)  1)))
        (s 1)
        (drawable 0) (selection-bounds 0) (sx1 0) (sx2 0) (sy1 0) (sy2 0) (swidth 0) (sheight 0)
        (newimage 0) (newlayer 0) (active 0) (filename2 "")
    )
    (while (not (null? filelist))
      (let* (
              (loadfile (car filelist))
              (image (car (gimp-file-load RUN-NONINTERACTIVE loadfile loadfile)))
            )

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams[&#39;font.sans-serif&#39;] = [&#39;SimHei&#39;] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -&gt; systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping(&quot;/hires&quot;) public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate&lt;String
使用vite构建项目报错 C:\Users\ychen\work&gt;npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-
参考1 参考2 解决方案 # 点击安装源 协议选择 http:// 路径填写 mirrors.aliyun.com/centos/8.3.2011/BaseOS/x86_64/os URL类型 软件库URL 其他路径 # 版本 7 mirrors.aliyun.com/centos/7/os/x86
报错1 [root@slave1 data_mocker]# kafka-console-consumer.sh --bootstrap-server slave1:9092 --topic topic_db [2023-12-19 18:31:12,770] WARN [Consumer clie
错误1 # 重写数据 hive (edu)&gt; insert overwrite table dwd_trade_cart_add_inc &gt; select data.id, &gt; data.user_id, &gt; data.course_id, &gt; date_format(
错误1 hive (edu)&gt; insert into huanhuan values(1,&#39;haoge&#39;); Query ID = root_20240110071417_fe1517ad-3607-41f4-bdcf-d00b98ac443e Total jobs = 1
报错1:执行到如下就不执行了,没有显示Successfully registered new MBean. [root@slave1 bin]# /usr/local/software/flume-1.9.0/bin/flume-ng agent -n a1 -c /usr/local/softwa
虚拟及没有启动任何服务器查看jps会显示jps,如果没有显示任何东西 [root@slave2 ~]# jps 9647 Jps 解决方案 # 进入/tmp查看 [root@slave1 dfs]# cd /tmp [root@slave1 tmp]# ll 总用量 48 drwxr-xr-x. 2
报错1 hive&gt; show databases; OK Failed with exception java.io.IOException:java.lang.RuntimeException: Error in configuring object Time taken: 0.474 se
报错1 [root@localhost ~]# vim -bash: vim: 未找到命令 安装vim yum -y install vim* # 查看是否安装成功 [root@hadoop01 hadoop]# rpm -qa |grep vim vim-X11-7.4.629-8.el7_9.x
修改hadoop配置 vi /usr/local/software/hadoop-2.9.2/etc/hadoop/yarn-site.xml # 添加如下 &lt;configuration&gt; &lt;property&gt; &lt;name&gt;yarn.nodemanager.res