private static BufferedImageRendering createRendering(ProductSceneView view, boolean fullScene, boolean geoReferenced, BufferedImage bufferedImage) { final Viewport vp1 = view.getLayerCanvas().getViewport(); final Viewport vp2 = new DefaultViewport(new Rectangle(bufferedImage.getWidth(), bufferedImage.getHeight()), vp1.isModelYAxisDown()); if (fullScene) { vp2.zoom(view.getBaseImageLayer().getModelBounds()); } else { setTransform(vp1, vp2); } final BufferedImageRendering imageRendering = new BufferedImageRendering(bufferedImage, vp2); if (geoReferenced) { // because image to model transform is stored with the exported image we have to invert // image to view transformation final AffineTransform m2iTransform = view.getBaseImageLayer().getModelToImageTransform(0); final AffineTransform v2mTransform = vp2.getViewToModelTransform(); v2mTransform.preConcatenate(m2iTransform); final AffineTransform v2iTransform = new AffineTransform(v2mTransform); final Graphics2D graphics2D = imageRendering.getGraphics(); v2iTransform.concatenate(graphics2D.getTransform()); graphics2D.setTransform(v2iTransform); } return imageRendering; }
private static BufferedImageRendering createRendering(ProductSceneView view, boolean fullScene, boolean geoReferenced, BufferedImage bufferedImage) { final Viewport vp1 = view.getLayerCanvas().getViewport(); final Viewport vp2 = new DefaultViewport(new Rectangle(bufferedImage.getWidth(), bufferedImage.getHeight()), vp1.isModelYAxisDown()); if (fullScene) { vp2.zoom(view.getBaseImageLayer().getModelBounds()); } else { setTransform(vp1, vp2); } final BufferedImageRendering imageRendering = new BufferedImageRendering(bufferedImage, vp2); if (geoReferenced) { // because image to model transform is stored with the exported image we have to invert // image to view transformation final AffineTransform m2iTransform = view.getBaseImageLayer().getModelToImageTransform(0); final AffineTransform v2mTransform = vp2.getViewToModelTransform(); v2mTransform.preConcatenate(m2iTransform); final AffineTransform v2iTransform = new AffineTransform(v2mTransform); final Graphics2D graphics2D = imageRendering.getGraphics(); v2iTransform.concatenate(graphics2D.getTransform()); graphics2D.setTransform(v2iTransform); } return imageRendering; }
public void handleViewChanged(ProductSceneView oldView, ProductSceneView newView) { if (debug) { System.out.println("NavigationCanvas.handleViewChanged(): " + System.currentTimeMillis()); System.out.println(" oldView = " + (oldView == null ? "null" : oldView.getSceneName())); System.out.println(" newView = " + (newView == null ? "null" : newView.getSceneName())); } if (oldView != null) { Viewport observedViewport = oldView.getLayerCanvas().getViewport(); observedViewport.removeListener(observedViewportHandler); } if (newView != null) { Viewport observedViewport = newView.getLayerCanvas().getViewport(); observedViewport.addListener(observedViewportHandler); final Rectangle bounds; if (getBounds().isEmpty()) { bounds = new Rectangle(0, 0, 100, 100); } else { bounds = getBounds(); } Viewport thumbnailViewport = new DefaultViewport(bounds, observedViewport.isModelYAxisDown()); thumbnailViewport.setOrientation(observedViewport.getOrientation()); LayerCanvasModel thumbnailCanvasModel = new DefaultLayerCanvasModel(newView.getRootLayer(), thumbnailViewport); thumbnailCanvas.setModel(thumbnailCanvasModel); thumbnailCanvas.zoomAll(); } else { thumbnailCanvas.setModel(NULL_MODEL); } updateMoveSliderRect(); }
void handleViewChanged(ProductSceneView oldView, ProductSceneView newView) { if (debug) { System.out.println("NavigationCanvas.handleViewChanged(): " + System.currentTimeMillis()); System.out.println(" oldView = " + (oldView == null ? "null" : oldView.getSceneName())); System.out.println(" newView = " + (newView == null ? "null" : newView.getSceneName())); } if (oldView != null) { Viewport observedViewport = oldView.getLayerCanvas().getViewport(); observedViewport.removeListener(observedViewportHandler); } if (newView != null) { Viewport observedViewport = newView.getLayerCanvas().getViewport(); observedViewport.addListener(observedViewportHandler); final Rectangle bounds; if (getBounds().isEmpty()) { bounds = new Rectangle(0, 0, 100, 100); } else { bounds = getBounds(); } Viewport thumbnailViewport = new DefaultViewport(bounds, observedViewport.isModelYAxisDown()); thumbnailViewport.setOrientation(observedViewport.getOrientation()); LayerCanvasModel thumbnailCanvasModel = new DefaultLayerCanvasModel(newView.getRootLayer(), thumbnailViewport); thumbnailCanvas.setModel(thumbnailCanvasModel); thumbnailCanvas.zoomAll(); } else { thumbnailCanvas.setModel(NULL_MODEL); } updateMoveSliderRect(); }
private BufferedImage createThumbNailImage(Dimension imgSize, ProgressMonitor pm) { Assert.notNull(pm, "pm"); String thumbNailBandName = getThumbnailBandName(); Band thumbNailBand = product.getBand(thumbNailBandName); Debug.trace("ProductSubsetDialog: Reading thumbnail data for band '" + thumbNailBandName + "'..."); pm.beginTask("Creating thumbnail image", 5); BufferedImage image = null; try { MultiLevelSource multiLevelSource = ColoredBandImageMultiLevelSource.create(thumbNailBand, SubProgressMonitor.create(pm, 1)); final ImageLayer imageLayer = new ImageLayer(multiLevelSource); final int imageWidth = imgSize.width; final int imageHeight = imgSize.height; final int imageType = BufferedImage.TYPE_3BYTE_BGR; image = new BufferedImage(imageWidth, imageHeight, imageType); Viewport snapshotVp = new DefaultViewport(isModelYAxisDown(imageLayer)); final BufferedImageRendering imageRendering = new BufferedImageRendering(image, snapshotVp); final Graphics2D graphics = imageRendering.getGraphics(); graphics.setColor(getBackground()); graphics.fillRect(0, 0, imageWidth, imageHeight); snapshotVp.zoom(imageLayer.getModelBounds()); snapshotVp.moveViewDelta(snapshotVp.getViewBounds().x, snapshotVp.getViewBounds().y); imageLayer.render(imageRendering); pm.worked(4); } finally { pm.done(); } return image; }
private BufferedImage createThumbNailImage(Dimension imgSize, ProgressMonitor pm) { Assert.notNull(pm, "pm"); String thumbNailBandName = getThumbnailBandName(); Band thumbNailBand = product.getBand(thumbNailBandName); Debug.trace("ProductSubsetDialog: Reading thumbnail data for band '" + thumbNailBandName + "'..."); pm.beginTask("Creating thumbnail image", 5); BufferedImage image = null; try { MultiLevelSource multiLevelSource = BandImageMultiLevelSource.create(thumbNailBand, SubProgressMonitor.create(pm, 1)); final ImageLayer imageLayer = new ImageLayer(multiLevelSource); final int imageWidth = imgSize.width; final int imageHeight = imgSize.height; final int imageType = BufferedImage.TYPE_3BYTE_BGR; image = new BufferedImage(imageWidth, imageHeight, imageType); Viewport snapshotVp = new DefaultViewport(isModelYAxisDown(imageLayer)); final BufferedImageRendering imageRendering = new BufferedImageRendering(image, snapshotVp); final Graphics2D graphics = imageRendering.getGraphics(); graphics.setColor(getBackground()); graphics.fillRect(0, 0, imageWidth, imageHeight); snapshotVp.zoom(imageLayer.getModelBounds()); snapshotVp.moveViewDelta(snapshotVp.getViewBounds().x, snapshotVp.getViewBounds().y); imageLayer.render(imageRendering); pm.worked(4); } finally { pm.done(); } return image; }
DefaultViewport viewport = new DefaultViewport(isModelYAxisDown(baseImageLayer));
DefaultViewport viewport = new DefaultViewport(isModelYAxisDown(baseImageLayer));