Java ImageJ API:如何在图像窗口中显示具有缩放和拖动滚动功能的图像?

Java ImageJ API:如何在图像窗口中显示具有缩放和拖动滚动功能的图像?,java,imagej,Java,Imagej,如果我使用斐济应用程序打开图像,那么图像将显示在一个窗口中,在该窗口中我可以使用+和-键进行放大和缩小,也可以按住空格键并用鼠标拖动缩放的图像以在其中滚动 我希望使用ImageJ API在java应用程序中实现相同的功能。如果使用以下代码(取自)打开图像,则图像将显示在与斐济情况相同的窗口类型中,但窗口中的缩放和拖动滚动功能不处于活动状态 Opener opener = new Opener(); ImagePlus imp = opener.openImage("/path/to/imag

如果我使用斐济应用程序打开图像,那么图像将显示在一个窗口中,在该窗口中我可以使用+和-键进行放大和缩小,也可以按住空格键并用鼠标拖动缩放的图像以在其中滚动

我希望使用ImageJ API在java应用程序中实现相同的功能。如果使用以下代码(取自)打开图像,则图像将显示在与斐济情况相同的窗口类型中,但窗口中的缩放和拖动滚动功能不处于活动状态

Opener opener = new Opener();  
ImagePlus imp = opener.openImage("/path/to/image.tif");  
imp.show();
有人能建议如何激活这两个功能吗?对我来说,它们看起来像每个人都使用的标准功能,因此我希望它们的激活可以通过ImageJ API轻松获得。然而,我在报告中没有发现任何提示

据我所知,调用
imp.show()相当于以下内容:

ImageWindow imageWindow = new ImageWindow(imp);
imageWindow.setVisible(true);
如果是这样的话,这个
ImageWindow
类中应该有一些方法可以确保激活缩放和拖动滚动。有人有线索吗


或者,也许有人可以共享到斐济源代码的直接链接,在那里实现这些确切的功能?应该是吗?如果是,那么具体在哪里

也许你应该多看看图片j。我想这是给ImageJ1的。我的猜测是,在
ImageJ
类中加载主gui时,会设置键绑定

下载imagej1源代码并对zoom执行
grep
后,我发现

./IJ_Props.txt:zoom01="In [+]",ij.plugin.Zoom("in")
./IJ_Props.txt:zoom02="Out [-]",ij.plugin.Zoom("out")
./IJ_Props.txt:zoom03="Original Scale[4]",ij.plugin.Zoom("orig")
./IJ_Props.txt:zoom04="View 100%[5]",ij.plugin.Zoom("100%")
./IJ_Props.txt:zoom05="To Selection",ij.plugin.Zoom("to")
./IJ_Props.txt:zoom06="Scale to Fit",ij.plugin.Zoom("scale")
./IJ_Props.txt:zoom07="Set... ",ij.plugin.Zoom("set")
尝试使用
ImageJ
类启动主GUI。或者,看看如何在该类中设置键侦听器

ImageJ
的代码中有多个您感兴趣的地方。例如,第388行是按下
键的方法的开始


在这些操作之后,
docomand
methdod调用相应的插件。

我解决了它。正如我所料,Java程序中存在一种简单的方法来激活ImageJ的缩放和拖动滚动功能

正如我现在看到的,ImageJ的大部分功能都是在
ij.plugin.*
下作为插件实现的

要在Java程序中激活所需的ImageJ功能,您需要(1)找到与
ij.plugin.*
包中的功能对应的插件,(2)在代码中调用插件,以及(3)将标准ImageJ发行版中的
IJ_Props.txt
文件放入运行java
.jar
可执行文件的目录中(似乎
IJ_Props.txt
文件包含许多可用ImageJ插件使用的设置)

因此,在本例中,我们需要在java代码中激活
ij.plugin.Zoom
插件:

//Launch ImageJ in NO_SHOW mode: Run embedded and invisible in another application.
ImageJ imageJApplication = new ImageJ(2);

Opener opener = new Opener();  
String imageFilePath = "path/to/your/image.png";
ImagePlus imp = opener.openImage(imageFilePath);
imp.show();
IJ.runPlugIn("ij.plugin.Zoom", null);

执行此代码时,我们将激活
ij.plugin.Zoom
plugin,所需的两个功能(缩放和拖动滚动)将在显示图像的窗口中正常工作。我们还可以在窗口左上角获得显示图像区域的传统ImageJ缩略图。

谢谢,这是获得答案的有用方向!
Opener opener = new Opener();  
ImagePlus imp = opener.openImage("/path/to/image.tif");  
imp.show();