Search in sources :

Example 26 with RenderedOp

use of javax.media.jai.RenderedOp in project imageio-ext by geosolutions-it.

the class ArcGridReadVrtTest method readJAI.

/**
 * Simple test read through JAI - ImageIO
 *
 * @throws FileNotFoundException
 * @throws IOException
 */
@Test
public void readJAI() throws FileNotFoundException, IOException {
    if (!isGDALAvailable) {
        return;
    }
    final ParameterBlockJAI pbjImageRead;
    final String fileName = "095b_dem_90m.asc.vrt";
    final File file = TestData.file(this, fileName);
    pbjImageRead = new ParameterBlockJAI("ImageRead");
    pbjImageRead.setParameter("Input", file);
    RenderedOp image = JAI.create("ImageRead", pbjImageRead);
    if (TestData.isInteractiveTest())
        Viewer.visualizeAllInformation(image, fileName);
    else
        image.getTiles();
    Assert.assertEquals(351, image.getWidth());
    Assert.assertEquals(350, image.getHeight());
    ImageIOUtilities.disposeImage(image);
}
Also used : RenderedOp(javax.media.jai.RenderedOp) ParameterBlockJAI(javax.media.jai.ParameterBlockJAI) File(java.io.File) Test(org.junit.Test) AbstractGDALTest(it.geosolutions.imageio.gdalframework.AbstractGDALTest)

Example 27 with RenderedOp

use of javax.media.jai.RenderedOp in project imageio-ext by geosolutions-it.

the class ECWTest method imageRead.

// ecwp
/**
 * Test reading of a RGB image
 *
 * @throws FileNotFoundException
 * @throws IOException
 */
@Test
public void imageRead() throws FileNotFoundException, IOException {
    if (!isECWAvailable)
        return;
    final ParameterBlockJAI pbjImageRead;
    final EnhancedImageReadParam irp = new EnhancedImageReadParam();
    final String fileName = "sample.ecw";
    final File file = TestData.file(this, fileName);
    irp.setSourceSubsampling(2, 2, 0, 0);
    pbjImageRead = new ParameterBlockJAI("ImageRead");
    pbjImageRead.setParameter("Input", file);
    pbjImageRead.setParameter("readParam", irp);
    final ImageLayout l = new ImageLayout();
    l.setTileGridXOffset(0).setTileGridYOffset(0).setTileHeight(512).setTileWidth(512);
    RenderedOp image = JAI.create("ImageRead", pbjImageRead, new RenderingHints(JAI.KEY_IMAGE_LAYOUT, l));
    if (TestData.isInteractiveTest())
        Viewer.visualizeAllInformation(image, fileName);
    else
        image.getTiles();
    Assert.assertEquals(200, image.getWidth());
    Assert.assertEquals(100, image.getHeight());
    ImageIOUtilities.disposeImage(image);
}
Also used : EnhancedImageReadParam(it.geosolutions.imageio.imageioimpl.EnhancedImageReadParam) RenderedOp(javax.media.jai.RenderedOp) ParameterBlockJAI(javax.media.jai.ParameterBlockJAI) File(java.io.File) ImageLayout(javax.media.jai.ImageLayout) RenderingHints(java.awt.RenderingHints) Test(org.junit.Test) AbstractGDALTest(it.geosolutions.imageio.gdalframework.AbstractGDALTest)

Example 28 with RenderedOp

use of javax.media.jai.RenderedOp in project imageio-ext by geosolutions-it.

the class DOQ2Test method imageRead.

/**
 * Test read exploiting common JAI operations (Crop-Translate-Rotate)
 *
 * @throws FileNotFoundException
 * @throws IOException
 */
@Test
public void imageRead() throws FileNotFoundException, IOException {
    if (!isGDALAvailable) {
        return;
    }
    File file;
    try {
        file = TestData.file(this, fileName);
    } catch (FileNotFoundException fnfe) {
        super.warningMessage();
        return;
    }
    // ////////////////////////////////////////////////////////////////
    // preparing to read
    // ////////////////////////////////////////////////////////////////
    final ParameterBlockJAI pbjImageRead;
    final ImageReadParam irp = new ImageReadParam();
    pbjImageRead = new ParameterBlockJAI("ImageRead");
    pbjImageRead.setParameter("Input", file);
    pbjImageRead.setParameter("readParam", irp);
    // NOTE that the actual sample data (fakedoq1.doq) only contains a row.
    // Therefore, we need to force the read on that reduced area.
    // Requesting a bigger image height will result in a GDAL ReadBlock error.
    irp.setSourceRegion(new Rectangle(0, 0, 500, 1));
    final ImageLayout l = new ImageLayout();
    l.setTileGridXOffset(0).setTileGridYOffset(0).setTileHeight(512).setTileWidth(512);
    // get a RenderedImage
    RenderedOp image = JAI.create("ImageRead", pbjImageRead, new RenderingHints(JAI.KEY_IMAGE_LAYOUT, l));
    if (TestData.isInteractiveTest()) {
        Viewer.visualizeAllInformation(image, "test");
    } else {
        Assert.assertNotNull(image.getTiles());
    }
    Assert.assertEquals(500, image.getWidth());
    Assert.assertEquals(1, image.getHeight());
    ImageIOUtilities.disposeImage(image);
}
Also used : ImageReadParam(javax.imageio.ImageReadParam) RenderedOp(javax.media.jai.RenderedOp) ParameterBlockJAI(javax.media.jai.ParameterBlockJAI) FileNotFoundException(java.io.FileNotFoundException) Rectangle(java.awt.Rectangle) File(java.io.File) ImageLayout(javax.media.jai.ImageLayout) RenderingHints(java.awt.RenderingHints) Test(org.junit.Test) AbstractGDALTest(it.geosolutions.imageio.gdalframework.AbstractGDALTest)

Example 29 with RenderedOp

use of javax.media.jai.RenderedOp in project imageio-ext by geosolutions-it.

the class JP2KKakaduWriteTest method write.

private static synchronized void write(String file, RenderedImage bi, boolean codeStreamOnly, double quality, boolean useJAI, JP2KKakaduImageWriteParam addParam) throws IOException {
    writeOperations++;
    file += "_Q" + quality + (codeStreamOnly ? ".j2c" : ".jp2");
    final ImageOutputStream outputStream = ImageIO.createImageOutputStream(new File(file));
    JP2KKakaduImageWriteParam param = new JP2KKakaduImageWriteParam();
    param.setQuality(quality);
    param.setWriteCodeStreamOnly(codeStreamOnly);
    if (addParam != null) {
        param.setSourceRegion(addParam.getSourceRegion());
        param.setSourceSubsampling(addParam.getSourceXSubsampling(), addParam.getSourceYSubsampling(), addParam.getSubsamplingXOffset(), addParam.getSubsamplingYOffset());
        param.setCLevels(addParam.getCLevels());
        param.setQualityLayers(addParam.getQualityLayers());
    }
    if (!useJAI) {
        final ImageWriter writer = new JP2KKakaduImageWriterSpi().createWriterInstance();
        // final ImageWriter writer = new
        // J2KImageWriterSpi().createWriterInstance();
        writer.setOutput(outputStream);
        // J2KImageWriteParam ioparam = (J2KImageWriteParam)
        // writer.getDefaultWriteParam();
        // ioparam.setWriteCodeStreamOnly(true);
        // ioparam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
        // ioparam.setCompressionType("JPEG2000");
        // ioparam.setCompressionQuality((float)quality);
        // ioparam.setEncodingRate((quality)*24);
        // writer.write(null, new IIOImage(bi, null, null), ioparam);
        writer.write(null, new IIOImage(bi, null, null), param);
        writer.dispose();
    } else {
        final ParameterBlockJAI pbjImageWrite = new ParameterBlockJAI("ImageWrite");
        final ImageWriter writer = new JP2KKakaduImageWriterSpi().createWriterInstance();
        pbjImageWrite.setParameter("writer", writer);
        pbjImageWrite.setParameter("output", outputStream);
        pbjImageWrite.setParameter("writeParam", param);
        pbjImageWrite.addSource(bi);
        RenderedOp image = JAI.create("ImageWrite", pbjImageWrite);
    }
}
Also used : RenderedOp(javax.media.jai.RenderedOp) ParameterBlockJAI(javax.media.jai.ParameterBlockJAI) ImageWriter(javax.imageio.ImageWriter) File(java.io.File) ImageOutputStream(javax.imageio.stream.ImageOutputStream) FileImageOutputStream(javax.imageio.stream.FileImageOutputStream) IIOImage(javax.imageio.IIOImage)

Example 30 with RenderedOp

use of javax.media.jai.RenderedOp in project imageio-ext by geosolutions-it.

the class JP2KKakaduWriteTest method testKakaduWriter.

public void testKakaduWriter() throws KduException, FileNotFoundException, IOException {
    if (!isKakaduAvailable) {
        LOGGER.warning("Kakadu libs not found: test are skipped ");
        return;
    }
    for (String fileName : files) {
        // final String filePath = inputFileName + fileName;
        // final File file = new File(filePath);
        final File file = TestData.file(this, fileName);
        final String filePath = file.getAbsolutePath();
        if (!file.exists()) {
            LOGGER.warning("Unable to find the file " + filePath + // + "\n Be sure you have properly specified the \"data.path\" property linking to the location where test data is available."
            "\n This test will be skipped");
            continue;
        } else {
            final String suffix = fileName.substring(0, fileName.length() - 4);
            LinkedList<TestConfiguration> configs = new LinkedList<TestConfiguration>();
            configs.add(new TestConfiguration(outputFileName + "_" + suffix, true, lossLessQuality, false, null));
            configs.add(new TestConfiguration(outputFileName + "_" + suffix, false, lossLessQuality, false, null));
            configs.add(new TestConfiguration(outputFileName + "_" + suffix, true, lossyQuality, false, null));
            configs.add(new TestConfiguration(outputFileName + "_" + suffix, false, lossyQuality, false, null));
            configs.add(new TestConfiguration(outputFileName + "_JAI_" + suffix, true, lossLessQuality, true, null));
            configs.add(new TestConfiguration(outputFileName + "_JAI_" + suffix, false, lossLessQuality, true, null));
            // configs.add(new TestConfiguration(
            // outputFileName + "_JAI_" + suffix, true, lossyQuality,
            // true, null));
            // configs.add(new TestConfiguration(
            // outputFileName + "_JAI_" + suffix, false, lossyQuality,
            // true, null));
            JP2KKakaduImageWriteParam param = new JP2KKakaduImageWriteParam();
            final int levels = 2;
            param.setCLevels(levels);
            configs.add(new TestConfiguration(outputFileName + "_" + levels + "levels_" + suffix, true, lossLessQuality, false, param));
            configs.add(new TestConfiguration(outputFileName + "_" + levels + "levels_" + suffix, false, lossLessQuality, false, param));
            configs.add(new TestConfiguration(outputFileName + "_" + levels + "levels_" + suffix, true, lossyQuality, false, param));
            configs.add(new TestConfiguration(outputFileName + "_" + levels + "levels_" + suffix, false, lossyQuality, false, param));
            for (TestConfiguration config : configs) {
                final ParameterBlockJAI pbjImageRead = new ParameterBlockJAI("ImageRead");
                ImageReader reader = ImageIO.getImageReaders(ImageIO.createImageInputStream(file)).next();
                pbjImageRead.setParameter("reader", reader);
                pbjImageRead.setParameter("Input", file);
                RenderedOp image = JAI.create("ImageRead", pbjImageRead);
                write(config.outputFileName, image, config.writeCodeStreamOnly, config.quality, config.useJAI, config.param);
            }
        }
    }
}
Also used : RenderedOp(javax.media.jai.RenderedOp) ParameterBlockJAI(javax.media.jai.ParameterBlockJAI) ImageReader(javax.imageio.ImageReader) File(java.io.File) LinkedList(java.util.LinkedList)

Aggregations

RenderedOp (javax.media.jai.RenderedOp)82 File (java.io.File)72 ParameterBlockJAI (javax.media.jai.ParameterBlockJAI)71 Test (org.junit.Test)61 ImageReadParam (javax.imageio.ImageReadParam)48 AbstractGDALTest (it.geosolutions.imageio.gdalframework.AbstractGDALTest)32 ImageWriter (javax.imageio.ImageWriter)28 ImageLayout (javax.media.jai.ImageLayout)28 ImageWriteParam (javax.imageio.ImageWriteParam)23 RenderingHints (java.awt.RenderingHints)21 FileImageOutputStreamExtImpl (it.geosolutions.imageio.stream.output.FileImageOutputStreamExtImpl)20 ImageReader (javax.imageio.ImageReader)14 FileNotFoundException (java.io.FileNotFoundException)13 Rectangle (java.awt.Rectangle)9 IIOMetadata (javax.imageio.metadata.IIOMetadata)5 IOException (java.io.IOException)4 ImageInputStream (javax.imageio.stream.ImageInputStream)4 FileImageInputStreamExtImpl (it.geosolutions.imageio.stream.input.FileImageInputStreamExtImpl)3 ColorSpace (java.awt.color.ColorSpace)3 ColorModel (java.awt.image.ColorModel)3