我知道编辑这个网站吗?
the ImageJ2 platform本页介绍与 the ImageJ2 platform 相关的内容。点击徽标查看详情。

脚本编写

ImageJ ecosystem支持多种语言的脚本。您使用的哪个脚本系统取决于您正在运行的应用程序。

哪个脚本系统?

ImageJ 生态系统包含多种不同的脚本系统:

ImageJ ** 原始ImageJ (1.x)** 附带其自己的脚本支持:ImageJ macro language 以及一些其他脚本语言。对于此系统,请参考原始 ImageJ 网站上的 ImageJ developer documentation。 SciJava #@ script parameters 不是原始 ImageJ 的一部分。

Fiji  Fiji 附带SciJava脚本框架:一个跨语言系统,包含#@ parameters#@script directive#!Lang shebang、统一的Script Editor和许多supported languages。本节的其余部分介绍SciJava脚本编写。

术语

这些页面一致使用以下术语:

  • ImageJ — 原始ImageJ 1.x应用程序。
  • ImageJ2 — Fiji 构建的 ImageJ2 库。
  • Fiji — Fiji发行版(ImageJ + ImageJ2 + 精选插件集 + 基于Jaunch 的启动器)。
  • SciJava 脚本 — ImageJ2 和 Fiji 共享的跨语言脚本框架。
  • ImageJ 生态系统 — 以上所有内容,以及其他 ImageJ 风格的应用程序。

##入门

支持的语言

支持许多不同的语言。下面总结了各种可能性。

推荐选项

Python Python是科学家们的普遍选择。有several ways to combine Python with Fiji
Groovy Groovy是一种灵活而强烈的脚本语言,类似于Java,但不太冗长而且是动态类型的。明白了这一点,以后使用Java(如果需要)就会变得更容易。
ImageJ Macro ImageJ宏的功能不如其他脚本语言强大,但其设计易于学习和使用。
JavaScript JavaScript 是网络开发者中的流行选择。
Ruby (JRuby) Ruby是网络开发人员中的另一个流行选择。
Lisp (Clojure) Lisp 是计算机科学家中的流行选择。
R (Renjin) R是科学家和统计学家的普遍选择。

###其他选项

Java 您可以在脚本编辑器中编写Java插件代码。这是最艰难的路,也是最有力的路。
MATLAB Fiji 可以与 MATLAB 用户连接。有关详细信息,请参阅第 MATLAB Scripting 页。
BeanShell BeanShell是一种旧的脚本语言,主要是为了兼容和维护的。它与Java语法几乎100%兼容,Groovy也是如此。
Scala Scala支持目前一个实验阶段,存在错误。

脚本参数

所有 SciJava 脚本都有一个通用脚本参数表示法,用于声明输入和。这种输出方法可以使用 GenericDialog,它与用户界面完全无关,允许此类脚本在各种中运行。 相关详细信息,请参阅script parameters页面。

使用口译员

所有语言脚本都使用相同的基本解释器,具有以下共同功能。

通用键绑定

  • ↑ Up:在输入的命令之前带上。
  • ↓ Down:引入下一个键入的命令。
  • ↵ Enter:执行提示内容。

多行编辑和按键绑定

您可以通过拖动中间栏来放大提示。

  • ⇧ Shift + ↵ Enter:在提示中创建一个新行。
  • ⇧ Shift + ↑ Up:移至提示中的上方。
  • ⇧ Shift + ↓ Down:移至提示中的下一行。

从屏幕上选择并执行文本

选择文本后,会出现一个弹出窗口:

  • 复制
  • 执行
  • 保存到新文件

使用脚本编辑器

您可以使用内置的§§§0§§创建、编辑和运行脚本。详情请参阅the Script Editor documentation

将脚本添加到插件菜单

要使脚本出现在菜单中,必须满足以下条件:

.txt is not a supported script extension

  1. 脚本文件保存在Fiji/scriptsFiji/plugins/Scripts目录(其他子目录)中。
  2. 脚本名称以支持的脚本扩展名结尾。例如:
    • .groovy for groovy,
    • .js for javascript,
    • .py for jython,
    • .rb for jruby,
    • .clj for clojure,
    • .bsh for beanshell, and
    • .ijm for ImageJ 1.x macros.
  3. 脚本名称包含_(下划线)字符,例如MyScript_.ijm

在将脚本添加到菜单之前,扩展名将被删除,所有下划线将被转换为空格。

顶级Fiji/plugins目录中的脚本将显示在插件菜单的底部。可以通过隐藏子目录将脚本放置在其他菜单中,例如将脚本放置在Fiji/scripts/File目录中并添加其添加到File菜单中。

菜单路径、标签、图标和其他模块元数据也可以使用#@script directive从脚本内部设置。

如果您无法找到脚本,您可以随意使用search bar来验证其位置(或是否存在)。

按照上述方式添加到菜单的命令可以从其他脚本调用。使用 macro recorder 获取执行此操作所需的代码。

将 JAR 资源的脚本添加到菜单中

脚本可以放在 JAR 文件中,方便更轻松地通过 Update Sites 分发给您的同事。因此,example-script-collection 可以使用 Maven 项目的模板。

在 example-script-collection jar 中,脚本位于 ./resources/scripts. 中,当 JAR 位于类路径上时(即在 ./plugins/./jars/ 中),脚本会添加相应到菜单中。

Fiji 在 ./scripts/ 的子文件夹中创建脚本,如上中所述,并在 ./jars/ 中创建 jar。原始的 ImageJ 识别 ./plugins/ 中的插件和脚本。

在无头模式下运行脚本

相关无头执行脚本的说明,请参见第Scripting Headless页。