如果我用斐济应用程序打开图片,那么图片会显示在一个窗口中,我可以使用+和-键放大和缩小,也可以按住空格键并用鼠标拖动放大后的图片滚动浏览它。
我想使用 ImageJ API 在 Java 应用程序中实现相同的功能。如果我使用以下代码(取自 here)打开图像,则图像显示在与斐济案例相同类型的窗口中,但缩放和拖动滚动功能在窗口中未激活。
Opener opener = new Opener();
ImagePlus imp = opener.openImage("/path/to/image.tif");
imp.show();
有人可以建议如何激活这两个功能吗?对我来说,它们看起来像是每个人都使用的标准功能,因此我希望可以通过 ImageJ API 轻松获得它们的激活。但是我在 API specs 中没有发现任何提示.
据我了解,上面代码中的调用 imp.show();
等效于以下内容:
ImageWindow imageWindow = new ImageWindow(imp);
imageWindow.setVisible(true);
如果是这样,该 ImageWindow
类中应该有一些方法可以确保激活缩放和拖动以滚动。有人知道吗?
或者,也许有人可以分享一个直接链接到实现了这些确切功能的 Fiji 源代码?应该是here吗? ?如果是,那么具体在哪里?
最佳答案
也许您应该更多地关注 ImageJ source code .我假设这是针对 ImageJ1 的。我的猜测是当主图形用户界面加载到 ImageJ
类
下载 imagej1 源代码并执行 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 行是 KeyPressed
方法的开始。
在这些操作之后,doCommand
方法会调用相应的插件。
关于java - ImageJ API : how to display an image with zoom and drag to scroll features active in the image window?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33280755/