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