@Override protected PlanarImage execute (final ChangeFormatOp operation, final EditableImage image, PlanarImage planarImage) { final ParameterBlock pb = new ParameterBlock(); pb.addSource(planarImage); pb.add(operation.getType().value()); RenderingHints hints = null; final EditableImage.DataType dataType = operation.getType(); if (dataType == EditableImage.DataType.SHORT) { final ImageLayout imageLayout = new ImageLayout(); imageLayout.setColorModel(planarImage.getColorModel()); hints = new RenderingHints(JAI.KEY_IMAGE_LAYOUT, imageLayout); log.info(">>>> using hints: {}", hints); } planarImage = JAI.create("format", pb, hints); JAIUtils.logImage(log, ">>>> ChangeFormatJAIOp returning {}", planarImage); return planarImage; } }
/******************************************************************************************************************* * * {@inheritDoc} * ******************************************************************************************************************/ @Nonnull @Override public EditableImage.DataType getDataType() { return (getPlanarImage() == null) ? null : EditableImage.DataType.valueOf(getPlanarImage().getSampleModel().getDataType()); }
@Test public void testGetDataType () { for (EditableImage.DataType dataType : EditableImage.DataType.values()) { if (dataType == EditableImage.DataType.UNDEFINED) { continue; } final CreateOp createOp1 = new CreateOp(10, 10, dataType); AssertJUnit.assertEquals(dataType, createOp1.getDataType()); final CreateOp createOp2 = new CreateOp(10, 10, dataType, Color.BLACK); AssertJUnit.assertEquals(dataType, createOp2.getDataType()); final CreateOp createOp3 = new CreateOp(10, 10, dataType, 0); AssertJUnit.assertEquals(dataType, createOp3.getDataType()); } }