if (pParam != null && pParam.getSourceRegion() != null) { Rectangle rectangle = pParam.getSourceRegion(); instance.translate(-rectangle.x, -rectangle.y);
/** * Checks that the provided <code>dimensions</code> when intersected with the source region used * by the provided {@link ImageReadParam} instance does not result in an empty {@link * Rectangle}. * * <p>Input parameters cannot be null. * * @param readParameters an instance of {@link ImageReadParam} for which we want to check the * source region element. * @param dimensions an instance of {@link Rectangle} to use for the check. * @return <code>true</code> if the intersection is not empty, <code>false</code> otherwise. */ public static final boolean checkEmptySourceRegion( final ImageReadParam readParameters, final Rectangle dimensions) { Utilities.ensureNonNull("readDimension", dimensions); Utilities.ensureNonNull("readP", readParameters); final Rectangle sourceRegion = readParameters.getSourceRegion(); Rectangle.intersect(sourceRegion, dimensions, sourceRegion); if (sourceRegion.isEmpty()) return true; readParameters.setSourceRegion(sourceRegion); return false; }
/** * Checks that the provided {@code dimensions} when intersected with the source region used by * the provided {@link ImageReadParam} instance does not result in an empty {@link Rectangle}. * Finally, in case the region intersection is not empty, set it as new source region for the * provided {@link ImageReadParam}. * * <p>Input parameters cannot be null. * * @param readParameters an instance of {@link ImageReadParam} for which we want to check the * source region element. * @param dimensions an instance of {@link Rectangle} to use for the check. * @return {@code true} if the intersection is not empty, {@code false} otherwise. */ public static boolean checkEmptySourceRegion( final ImageReadParam readParameters, final Rectangle dimensions) { Utilities.ensureNonNull("readDimension", dimensions); Utilities.ensureNonNull("readP", readParameters); final Rectangle sourceRegion = readParameters.getSourceRegion(); Rectangle.intersect(sourceRegion, dimensions, sourceRegion); if (sourceRegion.isEmpty()) { return true; } readParameters.setSourceRegion(sourceRegion); return false; }
sourceArea.setRect(readParameters.getSourceRegion());
Rectangle sourceRegion = params.getSourceRegion(); final double xScale = (imgBounds.getWidth() / sourceRegion.getWidth() * 1.0); final double yScale = (imgBounds.getHeight() / sourceRegion.getHeight() * 1.0);
Rectangle imgBounds = new Rectangle(raster.getMinX(), raster.getMinY(), width, height); Rectangle sourceArea = imageReadParam.getSourceRegion(); final Rectangle sourceRegion = imageReadParam.getSourceRegion(); final double scaleX = sourceRegion.width / (1.0 * ssWidth); final double scaleY = sourceRegion.height / (1.0 * ssHeight);
final Rectangle sourceRegion = imageReadParam.getSourceRegion(); final double scaleX = sourceRegion.width / (1.0 * ssWidth); final double scaleY = sourceRegion.height / (1.0 * ssHeight);
sourceArea.setRect(readParameters.getSourceRegion());
origSourceRegion = param.getSourceRegion();
sourceArea.setRect(readParameters.getSourceRegion());
Rectangle srcRegion = param.getSourceRegion();
if (originalParams.getSourceRegion() != null) { sourceRegion = originalParams.getSourceRegion();
if (readP.getSourceRegion() != null) { sourceRegion = readP.getSourceRegion(); } else { sourceRegion = new Rectangle(ogr.getSpan(0), ogr.getSpan(1));
public String render(Object o) { ImageReadParam param = (ImageReadParam) o; StringBuilder sb = new StringBuilder(); sb.append('[').append(o.getClass().toString()).append("\n"); int ssx = param.getSourceXSubsampling(); int ssy = param.getSourceYSubsampling(); Rectangle rect = param.getSourceRegion(); Point p = param.getDestinationOffset(); int[] bands = param.getSourceBands(); if (rect != null) { sb.append(String.format( " SourceRegion(Rectangle)[x:%d, y:%d, width:%d, height:%d]\n", rect.x, rect.y, rect.width, rect.height)); } sb.append(String.format(" SourceSubsampling[ssx:%d, ssy:%d]\n", ssx, ssy)); if (bands != null) { sb.append(" SourceBands[").append(HTMLBuilder.render(bands)).append("]\n"); } if (p != null) { sb.append(String.format(" DestinationOffset(Point)[x:%d, y:%d]", p.x, p.y)); } sb.append("]"); return sb.toString(); }
/** * XXX */ // Code copied from ImageReader.java private static Rectangle getSourceRegion(ImageReadParam param, int srcWidth, int srcHeight) { Rectangle sourceRegion = new Rectangle(0, 0, srcWidth, srcHeight); if (param != null) { Rectangle region = param.getSourceRegion(); if (region != null) { sourceRegion = sourceRegion.intersection(region); } int subsampleXOffset = param.getSubsamplingXOffset(); int subsampleYOffset = param.getSubsamplingYOffset(); sourceRegion.x += subsampleXOffset; sourceRegion.y += subsampleYOffset; sourceRegion.width -= subsampleXOffset; sourceRegion.height -= subsampleYOffset; } return sourceRegion; }
/** * XXX */ // Code copied from ImageReader.java private static Rectangle getSourceRegion(ImageReadParam param, int srcWidth, int srcHeight) { Rectangle sourceRegion = new Rectangle(0, 0, srcWidth, srcHeight); if (param != null) { Rectangle region = param.getSourceRegion(); if (region != null) { sourceRegion = sourceRegion.intersection(region); } int subsampleXOffset = param.getSubsamplingXOffset(); int subsampleYOffset = param.getSubsamplingYOffset(); sourceRegion.x += subsampleXOffset; sourceRegion.y += subsampleYOffset; sourceRegion.width -= subsampleXOffset; sourceRegion.height -= subsampleYOffset; } return sourceRegion; }
newParam.setSourceRegion(param.getSourceRegion()); if (param.getSourceMaxProgressivePass() != Integer.MAX_VALUE) { newParam.setSourceProgressivePasses(
/** * Checks that the provided {@code dimensions} when intersected with the source region used by * the provided {@link ImageReadParam} instance does not result in an empty {@link Rectangle}. * Finally, in case the region intersection is not empty, set it as new source region for the * provided {@link ImageReadParam}. * <p> * Input parameters cannot be null. * * @param readParameters an instance of {@link ImageReadParam} for which we want to check * the source region element. * @param dimensions an instance of {@link Rectangle} to use for the check. * @return {@code true} if the intersection is not empty, {@code false} otherwise. */ public static boolean checkEmptySourceRegion(final ImageReadParam readParameters, final Rectangle dimensions) { Utilities.ensureNonNull("readDimension", dimensions); Utilities.ensureNonNull("readP", readParameters); final Rectangle sourceRegion = readParameters.getSourceRegion(); Rectangle.intersect(sourceRegion, dimensions, sourceRegion); if (sourceRegion.isEmpty()) { return true; } readParameters.setSourceRegion(sourceRegion); return false; }
/** Makes a copy of the incoming parameters into the parameter that is used for the nested image reader */ protected void copyReadParam(ImageReadParam src, ImageReadParam dst) { dst.setDestination(src.getDestination()); dst.setSourceRegion(src.getSourceRegion()); dst.setSourceSubsampling(src.getSourceXSubsampling(), src .getSourceYSubsampling(), src.getSubsamplingXOffset(), src .getSubsamplingYOffset()); dst.setDestinationOffset(src.getDestinationOffset()); if (ImageReaderFactory.getInstance().needsImageTypeSpecifier(tsuid)) { dst.setDestinationType(createImageTypeSpecifier()); } //if lossy jpeg2000 and using the jai j2k reader //a workaround for http://java.net/jira/browse/JAI_IMAGEIO_CORE-175 if(J2KIMAGE_READ_PARAM_CLASS != null && J2KIMAGE_READ_PARAM_CLASS.isAssignableFrom(dst.getClass())) { try { J2KIMAGE_READ_PARAM_SET_RESOLUTION.invoke(dst, Integer.MAX_VALUE); } catch (Exception e) { log.info("A Failure occurred attempting to set the resolution for a jai J2KImageReadParam. This may result in degraded image quality.", e); } } }
protected void initialize(ImageReadParam param) { if (param.hasController()) setController(param.getController()); setSourceRegion(param.getSourceRegion()); setSourceBands(param.getSourceBands()); setDestinationBands(param.getDestinationBands()); setDestination(param.getDestination()); setDestinationOffset(param.getDestinationOffset()); setSourceSubsampling(param.getSourceXSubsampling(), param .getSourceYSubsampling(), param.getSubsamplingXOffset(), param .getSubsamplingYOffset()); final ImageTypeSpecifier type = param.getDestinationType(); if (type != null) setDestinationType(type); } }