int minYL = result.getMinY(source); int maxXL = result.getWidth(source) + minXL; int maxYL = result.getHeight(source) + minYL; for (int i = 0; i < n; i++) { source = sources.get(i); final int newSize = toTileSize(result.getHeight(source), oldSize); if (oldSize != newSize) { result.setTileHeight(newSize);
layout.setTileGridYOffset(layout.getMinY(sourceImage)); final int width = layout.getWidth(sourceImage); final int height = layout.getHeight(sourceImage); if (layout.getTileWidth(sourceImage) > width) layout.setTileWidth(width); if (layout.getTileHeight(sourceImage) > height) layout.setTileHeight(height);
layout.setTileGridYOffset(layout.getMinY(sourceImage)); final int width = layout.getWidth(sourceImage); final int height = layout.getHeight(sourceImage); if (layout.getTileWidth(sourceImage) > width) layout.setTileWidth(width); if (layout.getTileHeight(sourceImage) > height) layout.setTileHeight(height);
if (l.isValid(ImageLayout.TILE_HEIGHT_MASK) && l.isValid(ImageLayout.TILE_WIDTH_MASK)) { imageLayout.setTileHeight( Math.min(imageLayout.getHeight(null), l.getTileHeight(null))); imageLayout.setTileWidth( Math.min(imageLayout.getWidth(null), l.getTileWidth(null)));
public Properties getAsProperties(Properties defaultProperties) { final Properties properties = new Properties(defaultProperties); properties.setProperty("dataType", imageLayout.getSampleModel(null).getDataType() + ""); properties.setProperty("minX", imageLayout.getMinX(null) + ""); properties.setProperty("minY", imageLayout.getMinY(null) + ""); properties.setProperty("width", imageLayout.getWidth(null) + ""); properties.setProperty("height", imageLayout.getHeight(null) + ""); properties.setProperty("tileGridXOffset", imageLayout.getTileGridXOffset(null) + ""); properties.setProperty("tileGridYOffset", imageLayout.getTileGridYOffset(null) + ""); properties.setProperty("tileWidth", imageLayout.getTileWidth(null) + ""); properties.setProperty("tileHeight", imageLayout.getTileHeight(null) + ""); properties.setProperty("tileFormat", tileFormat); return properties; } }
new Dimension(layout.getWidth(sourceImage), layout.getHeight(sourceImage)); size = ImageUtilities.toTileSize(size); layout.setTileGridXOffset(layout.getMinX(sourceImage));
private OperatorImage(Band targetBand, OperatorContext operatorContext, ImageLayout imageLayout) { super(imageLayout, operatorContext.getRenderingHints(), imageLayout.getSampleModel(null), imageLayout.getMinX(null), imageLayout.getMinY(null), imageLayout.getWidth(null), imageLayout.getHeight(null)); this.targetBand = targetBand; this.operatorContext = operatorContext; OperatorContext.setTileCache(this); }
public static PlanarImage create(File imageFile, File cacheDir, Point imagePos, TileLayout tileLayout, S2Config config, MultiLevelModel imageModel, S2SpatialResolution productResolution, int level) { Assert.notNull(cacheDir, "cacheDir"); Assert.notNull(tileLayout, "imageLayout"); Assert.notNull(imageModel, "imageModel"); if (imageFile != null) { SystemUtils.LOG.fine("Image layout: " + tileLayout); S2TileOpImage s2TileOpImage = new S2TileOpImage(imageFile, cacheDir, imagePos, tileLayout, imageModel, level); s2TileOpImage.setTileCache(null); // the MosaicOpImage will be in the cache return s2TileOpImage; } else { SystemUtils.LOG.fine("Using empty image !"); TileLayout tileLaoutForProductResolution = config.getTileLayout(productResolution); int targetWidth = getSizeAtResolutionLevel(tileLaoutForProductResolution.width, level); int targetHeight = getSizeAtResolutionLevel(tileLaoutForProductResolution.height, level); Dimension targetTileDim = getTileDimAtResolutionLevel(tileLaoutForProductResolution.tileWidth, tileLaoutForProductResolution.tileHeight, level); SampleModel sampleModel = ImageUtils.createSingleBandedSampleModel(S2Config.SAMPLE_DATA_BUFFER_TYPE, targetWidth, targetHeight); ImageLayout imageLayout = new ImageLayout(0, 0, targetWidth, targetHeight, 0, 0, targetTileDim.width, targetTileDim.height, sampleModel, null); return ConstantDescriptor.create((float) imageLayout.getWidth(null), (float) imageLayout.getHeight(null), new Short[]{S2Config.FILL_CODE_NO_FILE}, new RenderingHints(JAI.KEY_IMAGE_LAYOUT, imageLayout)); } }
private WarpSourceCoordinatesOpImage(Warp warp, ImageLayout layout, Map configuration) { super(layout, configuration, layout.getSampleModel(null), layout.getMinX(null), layout.getMinY(null), layout.getWidth(null), layout.getHeight(null)); this.warp = warp; int compatibleTag = RasterAccessor.findCompatibleTag(null, layout.getSampleModel(null)); rasterFormatTag = new RasterFormatTag(layout.getSampleModel(null), compatibleTag); OperatorContext.setTileCache(this); }
private void testGetLevelImageBounds(int expectedSize, int size, int level, DefaultMultiLevelModel model) { Rectangle expected = new Rectangle(0, 0, expectedSize, expectedSize); ResolutionLevel resolutionLevel = new ResolutionLevel(level, model.getScale(level)); ImageLayout imageLayout = ImageManager.createSingleBandedImageLayout(DataBuffer.TYPE_USHORT, size, size, null, resolutionLevel); assertEquals("at resolution level " + level + ":", expected, new Rectangle(imageLayout.getMinX(null), imageLayout.getMinY(null), imageLayout.getWidth(null), imageLayout.getHeight(null)) ); }
/** * If the user didn't specified explicitly a sample or a color model, creates default ones. * This method is actually a workaround for RFE #4093999 in Sun's bug database * ("Relax constraint on placement of this()/super() call in constructors"). * * @param layout The user-supplied layout. * @return A layout with at least a color model. */ private static ImageLayout layout(final RenderedImage source, ImageLayout layout) { if (layout == null) { layout = new ImageLayout(); } else if ((layout.getValidMask() & (SAMPLE_MODEL_MASK | COLOR_MODEL_MASK)) == 0) { layout = (ImageLayout) layout.clone(); } else { return layout; } final ColorModel cm = ColorUtilities.BINARY_COLOR_MODEL; return layout.setColorModel(cm).setSampleModel(cm.createCompatibleSampleModel( layout.getWidth(source), layout.getHeight(source))); }
private WarpSourceCoordinatesOpImage(Warp warp, ImageLayout layout, Map configuration) { super(layout, configuration, layout.getSampleModel(null), layout.getMinX(null), layout.getMinY(null), layout.getWidth(null), layout.getHeight(null)); this.warp = warp; int compatibleTag = RasterAccessor.findCompatibleTag(null, layout.getSampleModel(null)); rasterFormatTag = new RasterFormatTag(layout.getSampleModel(null), compatibleTag); OperatorContext.setTileCache(this); }
ImageLayout imageLayout = new ImageLayout(0, 0, targetWidth, targetHeight, 0, 0, targetTileDim.width, targetTileDim.height, sampleModel, null); return ConstantDescriptor.create((float) imageLayout.getWidth(null), (float) imageLayout.getHeight(null), new Short[]{0}, new RenderingHints(JAI.KEY_IMAGE_LAYOUT, imageLayout));
private TiledFileOpImage(ImageHeader imageHeader, Map configuration, VirtualDir imageDir) throws IOException { super(imageHeader.getImageLayout(), configuration, imageHeader.getImageLayout().getSampleModel(null), imageHeader.getImageLayout().getMinX(null), imageHeader.getImageLayout().getMinY(null), imageHeader.getImageLayout().getWidth(null), imageHeader.getImageLayout().getHeight(null)); this.imageDir = imageDir; this.imageHeader = imageHeader; if (this.imageHeader.getTileFormat().equalsIgnoreCase("raw.zip")) { inputStreamFactory = new RawZipImageInputStreamFactory(); } else if (this.imageHeader.getTileFormat().equalsIgnoreCase("raw")) { inputStreamFactory = new RawImageInputStreamFactory(); } else if (this.imageHeader.getTileFormat().equalsIgnoreCase("zip")) { inputStreamFactory = new ZipInputStreamFactory(); } if (getTileCache() == null) { setTileCache(JAI.getDefaultInstance().getTileCache()); } }
private SingleBandedOpImage(ImageLayout layout, int sourceWidth, int sourceHeight, Map configuration, ResolutionLevel level) { super(layout, configuration, layout.getSampleModel(null), layout.getMinX(null), layout.getMinY(null), layout.getWidth(null), layout.getHeight(null)); levelImageSupport = new LevelImageSupport(sourceWidth, sourceHeight, level); if (getTileCache() == null) { setTileCache(JAI.getDefaultInstance().getTileCache()); } }
layout.setTileGridYOffset(layout.getMinY(sourceImage)); final int width = layout.getWidth(sourceImage); final int height = layout.getHeight(sourceImage); if (layout.getTileWidth(sourceImage) > width) layout.setTileWidth(width);
layout.setTileGridYOffset(layout.getMinY(sourceImage)); final int width = layout.getWidth(sourceImage); final int height = layout.getHeight(sourceImage); if (layout.getTileWidth(sourceImage) > width) layout.setTileWidth(width);
public void testLoadFloatImage() throws IOException { final ImageHeader imageHeader = ImageHeader.load( new InputStreamReader(ImageHeaderTest.class.getResourceAsStream("float-image.properties")), null, null); assertEquals("raw", imageHeader.getTileFormat()); final ImageLayout imageLayout = imageHeader.getImageLayout(); assertNotNull(imageLayout); assertEquals(1, imageLayout.getMinX(null)); assertEquals(-1, imageLayout.getMinY(null)); assertEquals(1280, imageLayout.getWidth(null)); assertEquals(1024, imageLayout.getHeight(null)); assertEquals(0, imageLayout.getTileGridXOffset(null)); assertEquals(6, imageLayout.getTileGridYOffset(null)); assertEquals(512, imageLayout.getTileWidth(null)); assertEquals(256, imageLayout.getTileHeight(null)); assertNull(imageLayout.getColorModel(null)); assertNotNull(imageLayout.getSampleModel(null)); assertEquals(512, imageLayout.getSampleModel(null).getWidth()); assertEquals(256, imageLayout.getSampleModel(null).getHeight()); assertEquals(1, imageLayout.getSampleModel(null).getNumBands()); assertEquals(4, imageLayout.getSampleModel(null).getDataType()); assertEquals(32, imageLayout.getSampleModel(null).getSampleSize()[0]); }
public void testLoadBitImage() throws IOException { final ImageHeader imageHeader = ImageHeader.load( new InputStreamReader(ImageHeaderTest.class.getResourceAsStream("bit-image.properties")), null, null); assertEquals("raw", imageHeader.getTileFormat()); final ImageLayout imageLayout = imageHeader.getImageLayout(); assertNotNull(imageLayout); assertEquals(1, imageLayout.getMinX(null)); assertEquals(-1, imageLayout.getMinY(null)); assertEquals(1280, imageLayout.getWidth(null)); assertEquals(1024, imageLayout.getHeight(null)); assertEquals(0, imageLayout.getTileGridXOffset(null)); assertEquals(6, imageLayout.getTileGridYOffset(null)); assertEquals(512, imageLayout.getTileWidth(null)); assertEquals(256, imageLayout.getTileHeight(null)); assertNull(imageLayout.getColorModel(null)); assertNotNull(imageLayout.getSampleModel(null)); assertEquals(512, imageLayout.getSampleModel(null).getWidth()); assertEquals(256, imageLayout.getSampleModel(null).getHeight()); assertEquals(1, imageLayout.getSampleModel(null).getNumBands()); assertEquals(0, imageLayout.getSampleModel(null).getDataType()); assertEquals(1, imageLayout.getSampleModel(null).getSampleSize()[0]); }
assertEquals(minY, imageHeader.getImageLayout().getMinY(null)); assertEquals(width, imageHeader.getImageLayout().getWidth(null)); assertEquals(height, imageHeader.getImageLayout().getHeight(null)); assertEquals(tileGridXOffset, imageHeader.getImageLayout().getTileGridXOffset(null)); assertEquals(tileGridYOffset, imageHeader.getImageLayout().getTileGridYOffset(null));