for (int band = 0; band < raster.getNumBands(); band++) { ps.println("Band " + band + ":"); for (int j = raster.getMinY(); j < (raster.getMinY() + raster.getHeight()); j++) { for (int i = raster.getMinX(); i < (raster.getMinX() + raster.getWidth()); i++) { if (raster.getTransferType() == DataBuffer.TYPE_DOUBLE)
/** * Constructs multi-dimensional grid envelope defined by a {@link Raster}. The two first * dimensions are set to the [{@linkplain Raster#getMinX x} .. x+{@linkplain Raster#getWidth * width}-1] and [{@linkplain Raster#getMinY y} .. y+{@linkplain Raster#getHeight height}-1] * inclusive ranges respectively. Extra dimensions (if any) are set to the [0..0] inclusive * range. * * <p>Notice that this method ensure interoperability between {@link Raster} dimensions in * Java2D style and {@link GridEnvelope} dimensions in ISO 19123 style providing that the user * remember to add 1 to the {@link GridEnvelope#getHigh(int)} values. * * @param raster The raster for which to construct a grid envelope. * @param dimension Number of dimensions for this grid envelope. Must be equals or greater than * 2. */ public GeneralGridEnvelope(final Raster raster, final int dimension) { this(raster.getMinX(), raster.getMinY(), raster.getWidth(), raster.getHeight(), dimension); }
public WritableRaster createCompatibleDestRaster(Raster src) { return icm.createCompatibleWritableRaster(src.getWidth(), src.getHeight()) .createWritableTranslatedChild(src.getMinX(), src.getMinY()); }
public void compose(Raster src, Raster dstIn, WritableRaster dstOut) { int width = min(src.getWidth(), dstIn.getWidth()); // We always work in RGB, using DataBuffer.TYPE_INT transfer type. int[] srcData = null; int[] dstData = null; int[] resData = new int[width - src.getMinX()]; for (int y = src.getMinY(); y < src.getHeight(); y++) { srcData = (int[]) src.getDataElements(src.getMinX(), y, width, 1, srcData); dstData = (int[]) dstIn.getDataElements(src.getMinX(), y, width, 1, dstData); for (int x = src.getMinX(); x < width; x++) { int sAlpha = (srcData[x] >>> 24) & 0xFF; int sRed = sAlpha * ((srcData[x] >> 16) & 0xFF) / 0xFF; int sGreen = sAlpha * ((srcData[x] >> 8) & 0xFF) / 0xFF; int sBlue = sAlpha * ((srcData[x]) & 0xFF) / 0xFF; int dAlpha = (dstData[x] >>> 24) & 0xFF; int dRed = dAlpha * ((dstData[x] >> 16) & 0xFF) / 0xFF; int dGreen = dAlpha * ((dstData[x] >> 8) & 0xFF) / 0xFF; int dBlue = dAlpha * ((dstData[x]) & 0xFF) / 0xFF; resData[x] = (max(sAlpha, dAlpha) << 24) | (max(sRed, dRed) << 16) | (max(sGreen, dGreen) << 8) | (max(sBlue, dBlue)); } dstOut.setDataElements(src.getMinX(), y, width, 1, resData); } } };
public void compose(Raster src, Raster dstIn, WritableRaster dstOut) { int width = min(src.getWidth(), dstIn.getWidth()); // We always work in RGB, using DataBuffer.TYPE_INT transfer type. int[] srcData = null; int[] dstData = null; int[] resData = new int[width - src.getMinX()]; for (int y = src.getMinY(); y < src.getHeight(); y++) { srcData = (int[]) src.getDataElements(src.getMinX(), y, width, 1, srcData); dstData = (int[]) dstIn.getDataElements(src.getMinX(), y, width, 1, dstData); for (int x = src.getMinX(); x < width; x++) { int sAlpha = (srcData[x] >>> 24) & 0xFF; int sRed = sAlpha * ((srcData[x] >> 16) & 0xFF) / 0xFF; int sGreen = sAlpha * ((srcData[x] >> 8) & 0xFF) / 0xFF; int sBlue = sAlpha * ((srcData[x]) & 0xFF) / 0xFF; int dAlpha = (dstData[x] >>> 24) & 0xFF; int dRed = dAlpha * ((dstData[x] >> 16) & 0xFF) / 0xFF; int dGreen = dAlpha * ((dstData[x] >> 8) & 0xFF) / 0xFF; int dBlue = dAlpha * ((dstData[x]) & 0xFF) / 0xFF; resData[x] = (min(sAlpha, dAlpha) << 24) | (min(sRed, dRed) << 16) | (min(sGreen, dGreen) << 8) | (min(sBlue, dBlue)); } dstOut.setDataElements(src.getMinX(), y, width, 1, resData); } } };
public void compose(Raster src, Raster dstIn, WritableRaster dstOut) { int width = min(src.getWidth(), dstIn.getWidth()); // We always work in RGB, using DataBuffer.TYPE_INT transfer type. int[] srcData = null; int[] dstData = null; int[] resData = new int[width - src.getMinX()]; for (int y = src.getMinY(); y < src.getHeight(); y++) { srcData = (int[]) src.getDataElements(src.getMinX(), y, width, 1, srcData); dstData = (int[]) dstIn.getDataElements(src.getMinX(), y, width, 1, dstData); for (int x = src.getMinX(); x < width; x++) { // TODO: Decide how to handle alpha (if at all) resData[x] = 0xff000000 | ((~srcData[x] ^ dstData[x])) & 0xffffff; } dstOut.setDataElements(src.getMinX(), y, width, 1, resData); } } };
int miny = r.getMinY(); int maxx = minx + r.getWidth(); int maxy = miny + r.getHeight();
int miny = r.getMinY(); int maxx = minx + r.getWidth(); int maxy = miny + r.getHeight();
int y0 = src.getMinY(); int width = Math.min(Math.min(src.getWidth(), dstIn.getWidth()), dstOut.getWidth()); int height = Math.min(Math.min(src.getHeight(), dstIn.getHeight()), dstOut.getHeight()); int y1 = y0 + height; int dstInXShift = dstIn.getMinX() - x0; int dstInYShift = dstIn.getMinY() - y0; int dstOutXShift = dstOut.getMinX() - x0; int dstOutYShift = dstOut.getMinY() - y0;
final int h = dest.getHeight(); final int srcMinX = src.getMinX(); final int srcMinY = src.getMinY(); final int srcMaxX = srcMinX + w; final int srcMaxY = srcMinY + h; final int dstMinX = src.getMinX(); final int dstMinY = src.getMinY(); final int numBands = src.getSampleModel().getNumBands(); final boolean sourceHasAlpha = (numBands % 2 == 0);
srcTile.getDataElements( srcTile.getMinX(), srcTile.getMinY(), srcTile.getWidth(), srcTile.getHeight(),
final int offsetY = tile.getMinY() - tile.getSampleModelTranslateY();
srcTile.getDataElements( srcTile.getMinX(), srcTile.getMinY(), srcTile.getWidth(), srcTile.getHeight(),
final int minx = sourceRaster.getMinX(); final int maxx = minx + w; final int miny = sourceRaster.getMinY(); final int maxy = miny + h; final WritableRaster destRaster =
int miny = r.getMinY(); minx = minx < minx_ ? minx_ : minx; miny = miny < miny_ ? miny_ : miny;
public Raster getData() { Raster r = getSource().getData(); return r.createTranslatedChild(r.getMinX()+deltaX, r.getMinY()+deltaY); }
public Raster getData(Rectangle rect) { Rectangle r = (Rectangle)rect.clone(); r.translate(-deltaX, -deltaY); Raster ret = getSource().getData(r); return ret.createTranslatedChild(ret.getMinX()+deltaX, ret.getMinY()+deltaY); }
public Raster getData(Rectangle rect) { Rectangle r = (Rectangle)rect.clone(); r.translate(-deltaX, -deltaY); Raster ret = getSource().getData(r); return ret.createTranslatedChild(ret.getMinX()+deltaX, ret.getMinY()+deltaY); }
public Raster getData(Rectangle rect) { Rectangle r = (Rectangle)rect.clone(); if (!r.intersects(getBounds())) { return null; } r = r.intersection(getBounds()); r.translate(-getMinX(), -getMinY()); Raster ret = bi.getData(r); return ret.createTranslatedChild(ret.getMinX() + getMinX(), ret.getMinY() + getMinY()); }
public Raster getData(Rectangle rect) { Rectangle r = (Rectangle)rect.clone(); if ( ! r.intersects(getBounds()) ) return null; r = r.intersection(getBounds()); r.translate(-getMinX(), - getMinY()); Raster ret = bi.getData(r); return ret.createTranslatedChild(ret.getMinX()+getMinX(), ret.getMinY()+getMinY()); }