如何在方案中调试gimp的script-fu脚本?

2024-03-11

我尝试使用 script-fu、scheme 为 gimp 制作一些脚本。

当然,作为一个初学者,会有很多错误和误解。

现在我正在寻找一种调试这些脚本的方法。

我找到了(gimp-message),但结果没有显示。我不知道是否有可能将调试消息打印到我可以检查的任何地方。

生成充满文本的新图像可能会起作用;-),但看起来有点矫枉过正。

在 gimp 中调试脚本有哪些方法?


可能有更好的方法,但是,我的方法是:

  1. 打开 script fu 控制台(过滤器 -> Script Fu -> 控制台)
  2. 编辑文件(例如:/Users/jamesanderson/code/scheme/gimp/learn1.scm
  3. 输入:(加载“/Users/jamesanderson/code/scheme/gimp/learn1.scm”)到控制台
  4. 按回车键
  5. 编辑文件进行更改
  6. 键盘向上箭头(无需键入即可再次调用加载函数)
  7. 按回车键

请注意,这是我根据评论回答的扩展。当超越上述简单的概念验证脚本时,重要的是要知道控制台在调用之间保留状态。例如,如果我们运行这个方案脚本:

(define jea-test-img-id nil)

(define (jea-find-test-img)
  (car (gimp-image-list)))

然后转到控制台并输入:

jea-test-img-id

我们得到的结果是:

> jea-test-img-id
()

这很好,脚本根据需要启动了变量,我们看到了结果。因此,在脚本中设置 var,控制台保留脚本中的状态更改。现在让我们更改控制台中的状态:

(set! jea-test-img-id (jea-find-test-img))

我们调用一个便利函数来获取活动图像列表中的第一个图像 ID,并将其存储在我们之前声明的变量中(当时该变量为 nil)。现在让我们再次审视这个问题:

jea-test-img-id

然后结果:

> jea-test-img-id
1

如此高的水平:当您处理脚本时,创建工作变量来保存您想要处理的内容,例如图像、像素、宽度等,然后逐个让函数工作。最后,一旦获得了简短的片段,您就可以将其折叠成一个干净的函数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在方案中调试gimp的script-fu脚本? 的相关文章

  • 如何检查给定调用站点的重载决策集

    如何检查重载解析集 我在多个调用站点中使用了 4 个相互竞争的函数 在一个调用站点中 我期望调用一个函数 但编译器会选择另一个函数 我不知道为什么 这不是微不足道的 为了了解发生了什么 我正在使用enable if disable if打开
  • 在 Visual Studio 中方法的返回行上检查函数的返回值

    我有一行这样的代码 return foo barIn 如果我在该行上放置一个断点 我可以检查 foo barIn 的返回值而不单步执行 foo 吗 我可以将代码重写为 var result foo barIn return result 但
  • 如何在托管应用程序的框架代码中调试 System.ExecutionEngineException

    我有一个作为服务运行的应用程序 该应用程序有时会崩溃 该应用程序是用 vb net 编写的 并在新线程 一次一个 上运行其任务 我已经收集了故障转储并开始分析 从应用程序创建的日志文件的分析 转储分析支持它 看来 当没有任务正在运行并且应用
  • Intellij IDEA 断点停止在 JAR 中,而不是我的项目的源代码中

    我在 java 文件中设置了一个断点 我通过 maven jetty 插件启动了 jetty 我设置断点的java文件也打包成JAR了 Intellij 在断点处停止 但它显示了打包到 JAR 中的文件而不是 java 文件 它的行为就像我
  • 无法在 Eclipse 中连接到虚拟机

    想要改进这篇文章吗 提供此问题的详细答案 包括引用和解释为什么你的答案是正确的 不够详细的答案可能会被编辑或删除 当我尝试在 Eclipse 上调试任何项目时 我突然开始遇到这个奇怪的错误 我不记得有什么改变让这个问题突然出现 Launch
  • Flask 未激活调试模式

    我正在开始使用 Flask 我正在尝试遵循一些教程 但我无法在调试模式下运行 Flask 应用程序 我尝试了我发现的最简单的代码 from flask import Flask app Flask name app debug True I
  • 如何调试 numpy 掩码

    这个问题与this one https stackoverflow com q 73672739 11004423 我有一个正在尝试矢量化的函数 这是原来的函数 def aspect good angle float planet1 goo
  • 在 Visual Studio 中调试非托管 C++ 图像

    我确实在 Visual Studio 2010 下的非托管 C 上编写了大量图像处理代码 其中涉及许多不同的图像 我希望能够在逐步调试时像简单标识符一样轻松地观看它们 我当前的解决方案是使用一些在 Matlab 控制台中导出图像的函数 可以
  • 在Racket中将结构递归转化为累积递归

    我有一些代码来查找最大高度并将其替换为关联的名称 身高和姓名有单独的列表 每个列表的长度相同且非空 我可以使用结构递归来解决这个问题 但必须将其更改为累积递归 而且我不确定如何做到这一点 我见过的所有例子都让我困惑 有人能够将代码变成使用累
  • 直接在 ARM 目标上调试单声道应用程序

    我最近在 BeagleBone 嵌入式 ARM 设备上安装了 Mono 希望通过 USB 连接 Kinnect 传感器并使用 C Mono 控制它 我想知道 Mono 我正在使用 MonoDevelop 但我想这个问题也适用于 VS 是否允
  • Chrome 开发工具命中代码但未命中断点

    我在 chrome 开发工具上启用了断点 并且在一行上有一个断点 我知道 chrome 正在运行 因为我将断点放在具有以下语句的行上 alert why is this not breaking 如果我在本地主机中找到该文件 则断点有效 断
  • Chrome 调试器注入 javascript

    我有这样的好奇心 是否可以以某种方式在我的页面中注入 javascript 并执行它并调试它 正如您在控制台中所做的那样 但在控制台中您无法暂停并观察变量 是否可以调试我通过控制台输入的代码 为什么无法调试通过 XHR 接收的代码 Than
  • html 空格引起的非常奇怪的错误

    我在 Firefox 中遇到了一个非常奇怪的错误 我在外部文件中有一个 javascript 函数 可以在常规复杂性网站上完美运行 然而 我一直在整理一些演示示例并遇到一些奇怪的事情 html 格式如下 在编辑器中 div p Q Wher
  • 为什么Racket中foldl的定义方式很奇怪?

    在 Haskell 中 与许多其他函数式语言一样 函数foldl被定义为 例如 foldl 0 1 2 3 4 10 这没关系 因为foldl 0 1 2 3 4 根据定义 0 1 2 3 4 但是 在 球拍 中 foldl 0 1 2 3
  • 如何限制 python 回溯到特定文件

    我编写了大量使用外部库的 Python 代码 我经常会编写一个错误 当我运行代码时 我会在 Python 控制台中看到一个很长的回溯 99 999999 的情况是由于我的代码中的编码错误 而不是由于包中的错误 但是回溯一直到包代码中的错误行
  • RMI 中的引用传递问题? [复制]

    这个问题在这里已经有答案了 有人可以告诉我我错在哪里 为什么这个 RMI 聊天应用程序不起作用 目标是通过远程对象或序列化对象实现客户端 服务器和逻辑之间的解耦 import javax swing import java awt even
  • 调试VS 2005提示“操作不支持”

    我一直在调试 VS 2005 并将 启动外部程序 设置为 C Program Files Microsoft Visual Studio 10 0 Common7 IDE devenv exe 但按 F5 后出现此错误 尝试运行项目时出错
  • Eclipse 调试“未找到源”

    我刚刚开始使用 Eclipse 所以慢慢来吧 但是 当尝试调试 JUnit 测试用例时 我会收到一个对话框 指出当我在测试方法中的代码中找到此行时 未找到源代码 Assert assertEquals 1 contents size 我知道
  • Silverlight 打印中“对话框必须由用户启动”安全异常的另一个技巧

    当我尝试在 Silverlight 中打印一些内容时 我收到臭名昭著的 对话框必须由用户启动 安全异常 正如您所看到的 该对话框尽可能由用户启动 约翰爸爸也帮不了我太多 http johnpapa net silverlight print
  • 为什么《小阴谋家》中的所有 lambda 表达式都是如此?

    在从 SICP 学习了一些计划之后 我开始阅读 小计划 我觉得这本书很有趣 并且已经完成了大约四分之一 我注意到我可以在不使用 lambda 的情况下编写许多 大多数 全部 解决方案 而 The Little Scheduleralways

随机推荐

  • 代码不适用于 matlab 中的图像处理

    我想在matlab中计算这个公式 m n d size img1 matrix1 sum abs img1 img2 a matrix1 m n b a 100 其中img1 img2是尺寸为512 512 3的两张图像 目标是获得单个数值
  • Linux 中断与轮询

    我正在开发一个带有 DSP 和 ARM 的系统 ARM上有一个linux操作系统 我有一个 DSP 向 ARM Linux 发送数据 在 Linux 中 有一个内核模块读取从 DSP 接收到的数据 内核模块被唤醒以读取数据 使用 DSP 和
  • Hadoop 减少多种输入格式

    我在 HDFS 中有两个数据格式不同的文件 如果我需要减少两个数据文件 那么作业设置会是什么样子 例如想象一下常见的字数统计问题 在一个文件中使用空格作为世界分隔符 在另一个文件中使用下划线 在我的方法中 我需要针对各种文件格式使用不同的映
  • 谷歌地图用多边形模拟折线

    几年前 我编写了一些代码 突出显示了 Google 地图上的一条路径 其中用户输入了宽度 用户确定突出显示的路径有多宽 以米为单位 这样他们就可以看到他们所覆盖的地面 例如草坪施肥等 我计算了距一个点的距离 并使用 Google 地图com
  • “你的意思?” Lucene.net 中的功能

    有人可以告诉我如何在 Lucene net 中实现 您是说 功能吗 Thanks 你应该调查一下拼写检查器 https svn apache org repos asf lucene lucene net trunk C 23 contri
  • PHP - 电子邮件验证[重复]

    这个问题在这里已经有答案了 可能的重复 电子邮件地址验证 https stackoverflow com questions 1025466 email address validation 你好 我有这个功能来验证电子邮件地址 funct
  • 仅当我省略 usePublicVapidKey 方法时,Firebase Cloud Messaging 的 getToken() 才有效,为什么?

    我在实施 Firebase for Firebase Cloud Messaging FCM 时遇到具体问题 正如您在下面的代码中看到的 messaging usePublicVapidKey
  • Android:无法转换为 java.lang.CharSequence

    我不知道我哪里出了问题 我试图在 recyclerView 中列出食谱的成分 但我无法让 onBindViewHolder 正常工作 无论我尝试过什么 下面是适配器代码以及 xml Recipe class 本质上我需要将 Recipe 类
  • 了解内核-前端通信——为什么我的前端冻结?

    EDIT 只需确认您是否可以重现此内容就会很有用 只需一台计算机即可尝试此操作 无需远程连接 Update似乎其他人无法在 Mac 或 Win7 上重现此问题 因此它要么是 WinXP 特定的 要么是我的机器特定的 此时我要放弃了 最好有一
  • 查找块中游标或表列的数据类型

    可以找出块内游标或变量的列的数据类型without使用系统表 虽然我知道我可以使用系统表来查找此信息 但速度会慢很多 就像是 declare my column data type varchar2 30 begin my column d
  • 如何在Windows 10下卸载Docker Machine

    我没有找到任何从 Windows 10 Edu 中删除 Docker Machine 的解决方案 但 Windows 上的 Docker Machine 文档非常少 我是 Powershell 的新手 所以也许有一个我没有找到的简单命令 g
  • oci_bind_by_name 是什么?

    what is oci bind by name http php net manual en function oci bind by name php为了 我读了 php 手册 但什么也看不懂 请有人向我解释一下 看这个例子 name
  • mongodb中_id的长度有限制吗

    背景 我已经正在接管一个应用程序 原始工程师正在离开 该应用程序充当一些相对较慢的后端服务的缓存层 因为它是 RESTful 风格的 URL 所以每个 URL 都是唯一的 应用程序使用MongoDb作为缓存的存储 并使用哈希值作为缓存 虽然
  • .pgpass 用于 Docker 化环境中的 PostgreSQL 复制

    我尝试使用 Docker 和 bash 脚本 我使用 Coreos 设置 PostgreSQL 从属服务器 我还没有找到任何方法来提供有效的 pgpass 我知道我可以创建一个 PGPASSWORD 环境变量 但出于安全原因不想这样做 如此
  • 有人可以向我指出一个使用最新路由系统的 ember.js 项目吗?如果它也使用 ember-data 则奖励积分

    我正在使用 ember js 制作我的第一个项目 到目前为止尚未找到任何使用新路由系统的示例项目 ember 文档中的所有示例都使用旧的路由 另外 如果有人知道的话 我很想看到一个使用 Ember Data 的项目示例 Thanks 您可以
  • 在 C# 中更改选项卡页时,如何将面板设置为始终位于顶部?

    我在 TabController 中有两个选项卡的程序 我还有一个我想始终放在前面的面板 不管我在哪个标签页 我尝试将面板设置为BringToFront 但是当我更改标签页时这似乎不起作用 有什么建议如何解决这个问题吗 如果面板是包含通过
  • 如何在 MySQL 中滞后列?

    考虑下表 SELECT id value FROM table ORDER BY id ASC id value 12 158 15 346 27 334 84 378 85 546 The id列自动递增但包含间隙 这value列是数字
  • CSS 嵌套 Div 具有绝对位置?

    这是一个更为复杂的案例的再现 div style width 200px background color red AS HDSKLAJD KLASJD KLASJ DKLASJDKL JASKLD JKLAS JDKLASD AS HDS
  • 如何在连接到 lein swank 的 ClojureBox (EmacsW32) REPL 中抑制 ^M 字符

    我正在从我的服务器连接到一个 swank 服务器ClojureBox http clojure billhugh com安装 IE lein swank从我的项目目录然后M x slime connect来自 EmacsW32 然而 当我这
  • 如何在方案中调试gimp的script-fu脚本?

    我尝试使用 script fu scheme 为 gimp 制作一些脚本 当然 作为一个初学者 会有很多错误和误解 现在我正在寻找一种调试这些脚本的方法 我找到了 gimp message 但结果没有显示 我不知道是否有可能将调试消息打印到