Macros 图J:将堆栈另存为动画gif

Macros 图J:将堆栈另存为动画gif,macros,animated-gif,imagej,Macros,Animated Gif,Imagej,我有几个共焦显微镜的图像堆栈保存为.lsm,我想写一个宏: 打开文件夹中的图像 制作合成,然后堆叠为RGB,然后设置动画选项 将其作为动画Gif保存到另一个文件夹 到目前为止我所做的: 函数堆栈\u到\u gif(输入、输出、文件名、fps){ 打开(输入+文件名); 运行(“使复合”); 运行(“堆栈到RGB”、“切片”); 运行(“动画选项…”,“速度=fps”); 运行(“动画Gif…”,“名称=标题=[不使用]可选=[]”+ “图像=[No Disposition]集合=500数字=-1

我有几个共焦显微镜的图像堆栈保存为.lsm,我想写一个宏:

  • 打开文件夹中的图像
  • 制作合成,然后堆叠为RGB,然后设置动画选项
  • 将其作为动画Gif保存到另一个文件夹
  • 到目前为止我所做的:

    函数堆栈\u到\u gif(输入、输出、文件名、fps){
    打开(输入+文件名);
    运行(“使复合”);
    运行(“堆栈到RGB”、“切片”);
    运行(“动画选项…”,“速度=fps”);
    运行(“动画Gif…”,“名称=标题=[不使用]可选=[]”+
    “图像=[No Disposition]集合=500数字=-1透明度=[No transparency]”+
    “红色=0绿色=0蓝色=0索引=0文件名=输出+文件名”);
    另存为(“动画Gif…”,输出+文件名);
    close();
    }
    inputDir=getDirectory(“选择输入位置”);
    outputDir=getDirectory(“选择输出位置”);
    fps=120;
    setBatchMode(真);
    list=getFileList(inputDir);
    对于(i=0;i
    我知道,在另一个宏中使用这两个底部部分时,它们也可以工作

    我的问题是saveAs(“动画Gif…”)部分,因为它不允许我保存RGB类型,即使我手动保存时它也可以工作

    到目前为止,我尝试的是:

    • 在saveAs中使用相同的run(“动画GIF…”)选项(“动画GIF…”)
    • 使用其中一个,但不能同时使用两个
    • 使用run(“8位”);在动画选项之后,该选项有效(但我丢失了颜色)
    让我恼火的是,当我手动操作时,它工作得非常好,但我收到了错误消息

    若要另存为动画GIF,必须通过“图像>类型>8位颜色”命令将堆栈转换为8位索引颜色

    我不知道为什么我自己做的时候不会发生这种事


    谢谢您的帮助。

    当我使用宏录制器(插件>宏>录制…)录制与文件>另存为>动画Gif…)对应的命令时,我得到以下命令:

    run(“动画Gif…”,“name=[my new name]set_global_lookup_table_options=[dot use]optional=[]image=[No dispose]set=20 number=-1 transparency=[No transparency]red=0 green=0 blue=0 index=0 filename=/usr/temp/Animated.Gif”);
    
    在您的命令中,部分
    name=title=[请勿使用]
    似乎是错误的。如果要使用当前图像标题,请使用字符串连接插入变量的内容:

    run(“动画Gif…”,“name=[“+myTitle+”]set_global_lookup_table_options=[请勿使用]可选=[]image=[无处理]set=20 number=-1透明度=[无透明度]红色=0绿色=0蓝色=0索引=0文件名=/usr/temp/Animated.Gif”);
    
    但是无论如何,
    name
    参数是不需要的,因为它将被包含整个文件路径的
    filename
    参数覆盖,所以您可以安全地将其保留

    同样,可以省略与默认值相同的任何参数。在我的测试中,这同样有效:

    run(“动画Gif…”,“set=20文件名=/usr/temp/Animated.Gif”);
    

    注意:保存动画GIF时,播放速度完全由设置延迟(以毫秒为单位)参数决定(在我的示例中,
    Set=20
    ),因此运行
    run(“动画选项…”,“速度=fps”)对保存的文件没有影响。(参见。关于这一点,似乎已经过时/错误。请自行更正文档,这是一个wiki。)

    我们也遇到了同样的问题。您需要将“设置\全局\查找\表格\选项”中的选项从[不使用]更改为[从当前图像加载]。此函数将z堆栈保存为动画gif格式,延迟为50us(设置为50),并且可以解决颜色问题

    function animated_gifZ(input, output, filename)
    {
    open(input + filename);
    run("RGB Color", "slices");
    run("8-bit Color", "number=256");
    run("Animated Gif ... ", "set_global_lookup_table_options=[Load from Current Image]" +
    "optional=[] image=[No Disposal] set=50 number=-1 transparency=[No Transparency]" +
    "red=0 green=0 blue=0 index=0 filename=output+filename");
    saveAs("Animated Gif...", output+filename);
    close();
    }
    
    如果您想加快速度,可以使用:

    function gifZ(input, output, filename)
    {
    open(input + filename);
    run("RGB Color", "slices");
    run("8-bit Color", "number=256");
    run("Properties...", "frame=[0.1 sec]");
    saveAs("Gif", output+filename);
    close();
    }
    

    希望能有帮助

    关于ImageJ的使用和与ImageJ和斐济插件相关的特定命令的问题最好直接提交给,在那里,ImageJ专家更有可能阅读和回答这些问题。