Привет, кто-нибудь знает хороший способ сделать снимок экрана симуляции таким образом, чтобы вы могли указать разрешение и получить изображение более высокого качества? единственный способ, который я могу придумать, - это увеличить масштаб и сшить несколько изображений вместе, но это занимает много времени ...
обновление:
Мне удалось успешно экспортировать всю область, волшебным параметром является: .setAnimationParameterEnabled(Panel.ANIM_BOUNDS_CLIPPING_XJAL, false)
это заставит Anylogic рисовать всю область, а не только видимую область.
Но это не всегда работает. Мне нужно запустить код, перемещаться по области, увеличивать / уменьшать масштаб и повторить попытку. В какой-то момент это становится действительно глючным, вероятно, потому, что он начинает рисовать все, а затем код работает. Проблема в том, что я не могу понять, что именно делать, чтобы все заработало ...
java.awt.Component alPanel = getExperiment().getPresentation().getPanel();
getExperiment().getPresentation().getPanel().setAnimationParameterEnabled(Panel.ANIM_BOUNDS_CLIPPING_XJAL, false);
getExperiment().getPresentation().setMaximized(false);
getExperiment().getPresentation().setPanelSize(5000, 5000);
java.awt.image.BufferedImage imageExperiment = new java.awt.image.BufferedImage(
alPanel.getWidth(),
alPanel.getHeight(),
java.awt.image.BufferedImage.TYPE_INT_RGB
);
getExperiment().drawPresentation(getExperiment().getPresentation().getPanel(), imageExperiment.createGraphics(), false);
java.awt.Component component = getExperiment().getPresentation().getPanel();
// call the Component's paint method, using
// the Graphics object of the image.
component.paintAll( imageExperiment.getGraphics() ); // alternately use .printAll(..)
try {
// write the image as a PNG
javax.imageio.ImageIO.write(
imageExperiment,
"png",
new File("screenshotAnylogic.png"));
} catch(Exception e) {
e.printStackTrace();
}