int posy = (int) (topTile - tile.getTileRow()) * DEFAULT_TILE_SIZE; image.getRaster().setRect(posx, posy, tileImage.getData());
destination.setRect(0, dstY, sourceRow);
/ levelInfo.getResY()); image.getRaster().setRect(posx, posy, queueObject.getTileImage().getRaster());
dest.setRect(0, 0, raster);
destination.setRect(offset.x, dstY, sourceRow);
private static byte[] getImgBytes(BufferedImage img) throws IOException { // create a new image, with 2x the original height. BufferedImage img2 = new BufferedImage(img.getWidth(), img.getHeight()*2, BufferedImage.TYPE_INT_RGB); // copy paste the pixels, but move them half the height. Raster sourceRaster = img.getRaster(); WritableRaster destinationRaster = img2.getRaster(); destinationRaster.setRect(0, img.getHeight(), sourceRaster); // save the new image to BMP format. ByteArrayOutputStream bos = new ByteArrayOutputStream(); ImageIO.write(img2, "bmp", bos); // strip the first 14 bytes (contains the bitmap-file-header) // the next 40 bytes contains the DIB header which we still need. // the pixel data follows until the end of the file. byte[] bytes = bos.toByteArray(); return Arrays.copyOfRange(bytes, 14, bytes.length); }
@Override public ImagePartLoader call() throws Exception { Thread.currentThread().setPriority((Thread.MIN_PRIORITY + Thread.NORM_PRIORITY) / 2); try (ImageInputStream stream = ImageIO.createImageInputStream(file);) { Iterator<ImageReader> readers = ImageIO.getImageReaders(stream); if (readers.hasNext()) { ImageReader reader = readers.next(); reader.setInput(stream, true, true); ImageReadParam param = reader.getDefaultReadParam(); param.setSourceRegion(region); BufferedImage part = reader.read(0, param); Raster source = part.getRaster(); WritableRaster target = image.getRaster(); target.setRect(0, y, source); } } return ImagePartLoader.this; } }
private BufferedImage getFallbackBufferedImage(ImageReader reader, int pageIndex, ImageReadParam param) throws IOException { //Work-around found at: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4799903 //There are some additional ideas there if someone wants to go further. // Try reading a Raster (no color conversion). Raster raster = reader.readRaster(pageIndex, param); // Arbitrarily select a BufferedImage type. int imageType; int numBands = raster.getNumBands(); switch(numBands) { case 1: imageType = BufferedImage.TYPE_BYTE_GRAY; break; case 3: imageType = BufferedImage.TYPE_3BYTE_BGR; break; case 4: imageType = BufferedImage.TYPE_4BYTE_ABGR; break; default: throw new UnsupportedOperationException("Unsupported band count: " + numBands); } // Create a BufferedImage. BufferedImage bi = new BufferedImage(raster.getWidth(), raster.getHeight(), imageType); // Set the image data. bi.getRaster().setRect(raster); return bi; }
@Override public ImagePartLoader call() throws Exception { Thread.currentThread().setPriority((Thread.MIN_PRIORITY + Thread.NORM_PRIORITY) / 2); ImageInputStream stream = ImageIO.createImageInputStream(file); Iterator<ImageReader> readers = ImageIO.getImageReaders(stream); if (readers.hasNext()) { ImageReader reader = readers.next(); reader.setInput(stream, true, true); ImageReadParam param = reader.getDefaultReadParam(); param.setSourceRegion(region); BufferedImage part = reader.read(0, param); Raster source = part.getRaster(); WritableRaster target = image.getRaster(); target.setRect(0, y, source); } return ImagePartLoader.this; } }
WritableRaster dstRaster = tmpBuf.getRaster(); Raster srcRaster = image.getRaster(); dstRaster.setRect(srcRaster); image = tmpBuf;
/** * Make a clone of a buffered image * * @param image * @return cloned image */ public static BufferedImage clone(BufferedImage image) { String[] pnames = image.getPropertyNames(); Hashtable<String, Object> cproperties = new Hashtable<String, Object>(); if (pnames != null) { for (int i = 0; i < pnames.length; i++) { cproperties.put(pnames[i], image.getProperty(pnames[i])); } } WritableRaster wr = image.getRaster(); WritableRaster cwr = wr.createCompatibleWritableRaster(); cwr.setRect(wr); BufferedImage cimage = new BufferedImage(image.getColorModel(), // should // be // immutable cwr, image.isAlphaPremultiplied(), cproperties); return cimage; }
public WritableRaster copyData(WritableRaster raster) { if (raster == null) { return read(new Rectangle(0, 0, getWidth(), getHeight())); } else { Raster src = read(raster.getBounds()); raster.setRect(src); return raster; } } }
public WritableRaster copyData(WritableRaster raster) { if (raster == null) { return read(new Rectangle(0, 0, getWidth(), getHeight())); } else { Raster src = read(raster.getBounds()); raster.setRect(src); return raster; } } }
public WritableRaster copyData(WritableRaster raster) { if (raster == null) { return read(new Rectangle(0, 0, getWidth(), getHeight())); } else { Raster src = read(raster.getBounds()); raster.setRect(src); return raster; } } }
public WritableRaster copyData(WritableRaster raster) { if (raster == null) { return read(new Rectangle(0, 0, getWidth(), getHeight())); } else { Raster src = read(raster.getBounds()); raster.setRect(src); return raster; } } }
@Override protected void computeRect(PlanarImage[] ignored, WritableRaster tile, Rectangle destRect) { Band targetBand = getTargetBand(); tile.setRect(targetBand.getGeophysicalImage().getData(destRect)); TileImpl targetTile = new TileImpl(targetBand, tile, destRect, false); operator.computeTile(targetBand, targetTile, ProgressMonitor.NULL); } });
public Raster computeTile(int tileX, int tileY) { Raster tile = getSourceImage(0).getTile(tileX, tileY); if (triggerCopyOperation) { // Copy the data as there is no concrete ColorModel for // a SinglePixelPackedSampleModel with numBands < 3. tile = tile.createChild(tile.getMinX(), tile.getMinY(), tile.getWidth(), tile.getHeight(), tile.getMinX(), tile.getMinY(), bands); WritableRaster raster = createTile(tileX, tileY); raster.setRect(tile); return raster; } else { // Simply return a child of the corresponding source tile. return tile.createChild(tile.getMinX(), tile.getMinY(), tile.getWidth(), tile.getHeight(), tile.getMinX(), tile.getMinY(), bands); } }
public Raster computeTile(int tileX, int tileY) { Raster tile = getSourceImage(0).getTile(tileX, tileY); if (triggerCopyOperation) { // Copy the data as there is no concrete ColorModel for // a SinglePixelPackedSampleModel with numBands < 3. tile = tile.createChild(tile.getMinX(), tile.getMinY(), tile.getWidth(), tile.getHeight(), tile.getMinX(), tile.getMinY(), bands); WritableRaster raster = createTile(tileX, tileY); raster.setRect(tile); return raster; } else { // Simply return a child of the corresponding source tile. return tile.createChild(tile.getMinX(), tile.getMinY(), tile.getWidth(), tile.getHeight(), tile.getMinX(), tile.getMinY(), bands); } }