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);
}
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);
}
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);
}
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);
}
}
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);
}
}
}
}
Aggregations