public Rect (BufferedImage source, int left, int top, int newWidth, int newHeight, boolean isPatch) { image = new BufferedImage(source.getColorModel(), source.getRaster().createWritableChild(left, top, newWidth, newHeight, 0, 0, null), source.getColorModel().isAlphaPremultiplied(), null); offsetX = left; offsetY = top; regionWidth = newWidth; regionHeight = newHeight; originalWidth = source.getWidth(); originalHeight = source.getHeight(); width = newWidth; height = newHeight; this.isPatch = isPatch; }
public Rect (BufferedImage source, int left, int top, int newWidth, int newHeight, boolean isPatch) { image = new BufferedImage(source.getColorModel(), source.getRaster().createWritableChild(left, top, newWidth, newHeight, 0, 0, null), source.getColorModel().isAlphaPremultiplied(), null); offsetX = left; offsetY = top; regionWidth = newWidth; regionHeight = newHeight; originalWidth = source.getWidth(); originalHeight = source.getHeight(); width = newWidth; height = newHeight; this.isPatch = isPatch; }
WritableRaster raster = offscreenImage.getRaster(); WritableRaster newRaster; newRaster = raster.createWritableChild(0, 0, width, height, 0, 0, new int[] {0, 1, 2}); DirectColorModel cm = (DirectColorModel) offscreenImage.getColorModel(); DirectColorModel newCM = new DirectColorModel(cm.getPixelSize(),
WritableRaster raster = onscreenImage.getRaster(); WritableRaster newRaster; newRaster = raster.createWritableChild(0, 0, width, height, 0, 0, new int[] {0, 1, 2}); DirectColorModel cm = (DirectColorModel) onscreenImage.getColorModel(); DirectColorModel newCM = new DirectColorModel(cm.getPixelSize(),
public WritableRaster createCompatibleDestRaster(final Raster src) { // WHAT?? This code no longer work for JRE 7u45+... JRE bug?! // Raster child = src.createChild(0, 0, src.getWidth(), src.getHeight(), 0, 0, new int[] {0, 1, 2}); // return child.createCompatibleWritableRaster(); // Throws an exception complaining about the scanline stride from the verify() method // This is a workaround for the above code that no longer works. // It wil use 25% more memory, but it seems to work... WritableRaster raster = src.createCompatibleWritableRaster(); return raster.createWritableChild(0, 0, src.getWidth(), src.getHeight(), 0, 0, new int[] {0, 1, 2}); }
private WritableRaster clipToRect(final WritableRaster raster, final Rectangle rect, final int[] bands) { if (rect.contains(raster.getMinX(), raster.getMinY(), raster.getWidth(), raster.getHeight()) && bands == null /* TODO: Compare bands with that of raster */) { return raster; } return raster.createWritableChild(rect.x, rect.y, rect.width, rect.height, 0, 0, bands); }
private WritableRaster clipToRect(final WritableRaster raster, final Rectangle rect, final int[] bands) { if (rect.contains(raster.getMinX(), raster.getMinY(), raster.getWidth(), raster.getHeight()) && bands == null /* TODO: Compare bands with that of raster */) { return raster; } return raster.createWritableChild(rect.x, rect.y, rect.width, rect.height, 0, 0, bands); }
private WritableRaster clipToRect(final WritableRaster raster, final Rectangle rect, final int[] bands) { if (rect.contains(raster.getMinX(), raster.getMinY(), raster.getWidth(), raster.getHeight()) && bands == null /* TODO: Compare bands with that of raster */) { return raster; } return raster.createWritableChild(rect.x, rect.y, rect.width, rect.height, 0, 0, bands); }
private WritableRaster clipToRect(final WritableRaster raster, final Rectangle rect, final int[] bands) { if (rect.contains(raster.getMinX(), raster.getMinY(), raster.getWidth(), raster.getHeight()) && bands == null /* TODO: Compare bands with that of raster */) { return raster; } return raster.createWritableChild(rect.x, rect.y, rect.width, rect.height, 0, 0, bands); }
private WritableRaster clipToRect(final WritableRaster raster, final Rectangle rect, final int[] bands) { if (rect.contains(raster.getMinX(), raster.getMinY(), raster.getWidth(), raster.getHeight()) && bands == null /* TODO: Compare bands with that of raster */) { return raster; } return raster.createWritableChild(rect.x, rect.y, rect.width, rect.height, 0, 0, bands); }
private WritableRaster clipToRect(final WritableRaster raster, final Rectangle rect, final int[] bands) { if (rect.contains(raster.getMinX(), raster.getMinY(), raster.getWidth(), raster.getHeight()) && bands == null /* TODO: Compare bands with that of raster */) { return raster; } return raster.createWritableChild(rect.x, rect.y, rect.width, rect.height, 0, 0, bands); }
private void readRowByte(final WritableRaster destRaster, Raster rowRaster, final ColorConvertOp colorConvert, final byte[] rowDataByte, final int samplesPerPixel, final DataInput input, final int y, final Rectangle srcRegion, final int xSub, final int ySub) throws IOException { // If subsampled or outside source region, skip entire row if (y % ySub != 0 || y < srcRegion.y || y >= srcRegion.y + srcRegion.height) { input.skipBytes(rowDataByte.length); return; } input.readFully(rowDataByte); // Subsample (horizontal) subsampleHorizontal(rowDataByte, rowDataByte.length, samplesPerPixel, xSub); normalize(rowDataByte, 0, rowDataByte.length / xSub); int destY = (y - srcRegion.y) / ySub; if (colorConvert != null) { colorConvert.filter(rowRaster, destRaster.createWritableChild(0, destY, rowRaster.getWidth(), 1, 0, 0, null)); } else { destRaster.setDataElements(0, destY, rowRaster); } }
private void convertToDestinationCS(final ColorModel sourceCM, ColorModel destinationCM, final WritableRaster raster) { long start = DEBUG ? System.currentTimeMillis() : 0; // Color conversion from embedded color space, to destination color space WritableRaster alphaMaskedRaster = destinationCM.hasAlpha() ? raster.createWritableChild(0, 0, raster.getWidth(), raster.getHeight(), raster.getMinX(), raster.getMinY(), createBandList(sourceCM.getColorSpace().getNumComponents())) : raster; new ColorConvertOp(sourceCM.getColorSpace(), destinationCM.getColorSpace(), null) .filter(alphaMaskedRaster, alphaMaskedRaster); if (DEBUG) { System.out.println("Color conversion " + (System.currentTimeMillis() - start) + "ms"); } }
@Override public WritableRaster getAlphaRaster(WritableRaster raster) { if (!hasAlpha()) { return null; } int x = raster.getMinX(); int y = raster.getMinY(); int[] band = new int[] {getAlphaComponent()}; return raster.createWritableChild(x, y, raster.getWidth(), raster.getHeight(), x, y, band); }
destination = destination.createWritableChild(0, 0, destination.getWidth(), destination.getHeight(), offset.x, offset.y, destinationBands);
? raster.createWritableChild(raster.getMinX(), raster.getMinY(), raster.getWidth(), raster.getHeight(), 0, 0, new int[] {band}) : raster; Raster srcChannel = banded ? raster.createWritableChild(raster.getMinX(), raster.getMinY(), raster.getWidth(), raster.getHeight(), 0, 0, new int[] {band}) : raster; Raster srcChannel = banded ? raster.createWritableChild(raster.getMinX(), raster.getMinY(), raster.getWidth(), raster.getHeight(), 0, 0, new int[] {band}) : raster; Raster srcChannel = banded ? raster.createWritableChild(raster.getMinX(), raster.getMinY(), raster.getWidth(), raster.getHeight(), 0, 0, new int[] {band}) : raster; Raster srcChannel = banded
WritableRaster dest = destination.createWritableChild(dstRegion.x, dstRegion.y, raster.getWidth(), raster.getHeight(), 0, 0, param.getDestinationBands());
.createWritableChild(destRegion.x, destRegion.y, destRegion.width, destRegion.height, 0, 0, null);
WritableRaster destChannel = destRaster.createWritableChild(destRaster.getMinX(), destRaster.getMinY(), destRaster.getWidth(), destRaster.getHeight(), 0, 0, new int[] {c}); Raster srcChannel = clippedRow.createChild(clippedRow.getMinX(), 0, clippedRow.getWidth(), 1, 0, 0, new int[] {c});
WritableRaster destChannel = destRaster.createWritableChild(destRaster.getMinX(), destRaster.getMinY(), destRaster.getWidth(), destRaster.getHeight(), 0, 0, new int[] {c}); Raster srcChannel = clippedRow.createChild(clippedRow.getMinX(), 0, clippedRow.getWidth(), 1, 0, 0, new int[] {c});