irParam.setSourceSubsampling(subsampling, subsampling, 0, 0);
irParam.setSourceSubsampling(subsampling, subsampling, 0, 0);
readP.setSourceSubsampling(1, 1, 0, 0); } else { int subSamplingFactorX = (int) Math.floor(requestedRes[0] / highestRes[0]); readP.setSourceSubsampling(subSamplingFactorX, subSamplingFactorY, 0, 0);
readParameters.setSourceSubsampling(1, 1, 0, 0); return; subSamplingFactorY = subSamplingFactorY <= 0 ? 1 : subSamplingFactorY; readParameters.setSourceSubsampling(subSamplingFactorX, subSamplingFactorY, 0, 0);
readP.setSourceSubsampling(1, 1, 0, 0); subSamplingFactorY = subSamplingFactorY == 0 ? 1 : subSamplingFactorY; readP.setSourceSubsampling(subSamplingFactorX, subSamplingFactorY, 0, 0);
readParams.setSourceSubsampling(1, 1, 0, 0);
@Test public void testReadSubsamplingBounds1024() throws IOException { JPEGImageReader reader = createReader(); reader.setInput(ImageIO.createImageInputStream(getClassLoaderResource("/jpeg/read-error1024.jpg"))); ImageReadParam param = reader.getDefaultReadParam(); param.setSourceSubsampling(3, 3, 1, 1); BufferedImage image = reader.read(0, param); assertNotNull(image); // Make sure correct color is actually read, not just left empty assertRGBEquals(0xfffefefd, image.getRGB(0, image.getHeight() - 2)); assertRGBEquals(0xfffefefd, image.getRGB(0, image.getHeight() - 1)); }
@Test public void testReadSubsamplingNotSkippingLines1028() throws IOException { JPEGImageReader reader = createReader(); reader.setInput(ImageIO.createImageInputStream(getClassLoaderResource("/jpeg/read-error1028.jpg"))); ImageReadParam param = reader.getDefaultReadParam(); param.setSourceSubsampling(3, 3, 1, 1); BufferedImage image = reader.read(0, param); assertNotNull(image); // Make sure correct color is actually read, not just left empty assertRGBEquals(0xfffefefd, image.getRGB(0, image.getHeight() - 2)); assertRGBEquals(0xfffefefd, image.getRGB(0, image.getHeight() - 1)); }
@Test public void testReadSubsamplingBounds1026() throws IOException { JPEGImageReader reader = createReader(); reader.setInput(ImageIO.createImageInputStream(getClassLoaderResource("/jpeg/read-error1026.jpg"))); ImageReadParam param = reader.getDefaultReadParam(); param.setSourceSubsampling(3, 3, 1, 1); BufferedImage image = reader.read(0, param); assertNotNull(image); // Make sure correct color is actually read, not just left empty assertRGBEquals(0xfffefefd, image.getRGB(0, image.getHeight() - 2)); assertRGBEquals(0xfffefefd, image.getRGB(0, image.getHeight() - 1)); }
@Test public void testReadSubsamplingBounds1027() throws IOException { JPEGImageReader reader = createReader(); reader.setInput(ImageIO.createImageInputStream(getClassLoaderResource("/jpeg/read-error1027.jpg"))); ImageReadParam param = reader.getDefaultReadParam(); param.setSourceSubsampling(3, 3, 2, 2); BufferedImage image = reader.read(0, param); assertNotNull(image); // Make sure correct color is actually read, not just left empty assertRGBEquals(0xfffefefd, image.getRGB(0, image.getHeight() - 2)); assertRGBEquals(0xfffefefd, image.getRGB(0, image.getHeight() - 1)); }
@Test public void testReadSubsamplingNotSkippingLines1025() throws IOException { JPEGImageReader reader = createReader(); reader.setInput(ImageIO.createImageInputStream(getClassLoaderResource("/jpeg/read-error1025.jpg"))); ImageReadParam param = reader.getDefaultReadParam(); param.setSourceSubsampling(3, 3, 1, 1); BufferedImage image = reader.read(0, param); assertNotNull(image); // Make sure correct color is actually read, not just left empty assertRGBEquals(0xfffefefd, image.getRGB(0, image.getHeight() - 2)); assertRGBEquals(0xfffefefd, image.getRGB(0, image.getHeight() - 1)); }
@Test public void testICCProfileCMYKClassOutputColors() throws IOException { // Make sure ICC profile with class output isn't converted to too bright values JPEGImageReader reader = createReader(); reader.setInput(ImageIO.createImageInputStream(getClassLoaderResource("/jpeg/cmyk-sample-custom-icc-bright.jpg"))); ImageReadParam param = reader.getDefaultReadParam(); param.setSourceRegion(new Rectangle(800, 800, 64, 8)); param.setSourceSubsampling(8, 8, 2, 2); BufferedImage image = reader.read(0, param); assertNotNull(image); byte[] data = ((DataBufferByte) image.getRaster().getDataBuffer()).getData(); byte[] expectedData = {34, 37, 34, 47, 47, 44, 22, 26, 28, 23, 26, 28, 20, 23, 26, 20, 22, 25, 22, 25, 27, 18, 21, 24}; assertEquals(expectedData.length, data.length); assertJPEGPixelsEqual(expectedData, data, 0); reader.dispose(); }
@Test public void testReadWithSubsampleAndSourceRegionParam() { // NOTE: The "standard" (com.sun.imageio.plugin.*) ImageReaders pass // this test, so the test should be correct... ImageReader reader = createReader(); TestData data = getTestData().get(0); reader.setInput(data.getInputStream()); ImageReadParam param = reader.getDefaultReadParam(); param.setSourceSubsampling(2, 2, 0, 0); param.setSourceRegion(new Rectangle(0, 0, 10, 10)); BufferedImage image = null; try { image = reader.read(0, param); } catch (IOException e) { failBecause("Image could not be read", e); } assertNotNull("Image was null!", image); assertEquals("Read image has wrong width: " + image.getWidth(), 5, image.getWidth()); assertEquals("Read image has wrong height: " + image.getHeight(), 5, image.getHeight()); reader.dispose(); }
@Test public void testReadSubsamplingBounds1025() throws IOException { JPEGImageReader reader = createReader(); reader.setInput(ImageIO.createImageInputStream(getClassLoaderResource("/jpeg/read-error1025.jpg"))); ImageReadParam param = reader.getDefaultReadParam(); param.setSourceSubsampling(3, 3, 1, 1); BufferedImage image = reader.read(0, param); assertNotNull(image); }
@Test public void testReadSubsamplingBounds1028() throws IOException { JPEGImageReader reader = createReader(); reader.setInput(ImageIO.createImageInputStream(getClassLoaderResource("/jpeg/read-error1028.jpg"))); ImageReadParam param = reader.getDefaultReadParam(); param.setSourceSubsampling(3, 3, 1, 1); BufferedImage image = reader.read(0, param); assertNotNull(image); }
ImageReadParam irp = reader.getDefaultReadParam(); irp.setSourceRegion(options.getSourceRegion()); irp.setSourceSubsampling(options.getSubsamplingX(), options.getSubsamplingY(), options.getSubsamplingOffsetX(), options.getSubsamplingOffsetY()); options.setFilterSubsampled(true);
@Test public void testReadWithSubsampleParamDimensions() { ImageReader reader = createReader(); TestData data = getTestData().get(0); reader.setInput(data.getInputStream()); ImageReadParam param = reader.getDefaultReadParam(); param.setSourceSubsampling(5, 5, 0, 0); BufferedImage image = null; try { image = reader.read(0, param); } catch (IOException e) { failBecause("Image could not be read", e); } assertNotNull("Image was null!", image); assertEquals("Read image has wrong width: ", (data.getDimension(0).width + 4) / 5, image.getWidth()); assertEquals("Read image has wrong height: ", (data.getDimension(0).height + 4) / 5, image.getHeight()); reader.dispose(); }
@Ignore("Known issue: Subsampled reading is currently broken") @Test public void testReadWithSubsampleParamPixelsIndexed8() throws IOException { ImageReader reader = createReader(); TestData data = getTestData().get(0); reader.setInput(data.getInputStream()); ImageReadParam param = reader.getDefaultReadParam(); BufferedImage image = null; BufferedImage subsampled = null; try { image = reader.read(0, param); param.setSourceSubsampling(2, 2, 0, 0); subsampled = reader.read(0, param); } catch (IOException e) { failBecause("Image could not be read", e); } assertSubsampledImageDataEquals("Subsampled image data does not match expected", image, subsampled, param); }
@Test public void testReadWithSubsampleParamPixels() throws IOException { ImageReader reader = createReader(); TestData data = getTestData().get(0); reader.setInput(data.getInputStream()); ImageReadParam param = reader.getDefaultReadParam(); BufferedImage image = null; BufferedImage subsampled = null; try { image = reader.read(0, param); param.setSourceSubsampling(2, 2, 0, 0); subsampled = reader.read(0, param); } catch (IOException e) { failBecause("Image could not be read", e); } assertSubsampledImageDataEquals("Subsampled image data does not match expected", image, subsampled, param); reader.dispose(); }
@Ignore("Known issue: Subsampled reading is currently broken") @Test @Override public void testReadWithSubsampleParamPixels() throws IOException { ImageReader reader = createReader(); TestData data = getTestData().get(19); // RGB 24 reader.setInput(data.getInputStream()); ImageReadParam param = reader.getDefaultReadParam(); BufferedImage image = null; BufferedImage subsampled = null; try { image = reader.read(0, param); param.setSourceSubsampling(2, 2, 0, 0); subsampled = reader.read(0, param); } catch (IOException e) { failBecause("Image could not be read", e); } assertSubsampledImageDataEquals("Subsampled image data does not match expected", image, subsampled, param); }