@Override protected PlanarImage execute (ApplyUnsharpMaskOp operation, final EditableImage image, PlanarImage planarImage) { double intensity = operation.getIntensity(); double radius = operation.getRadius(); double threshold = operation.getThreshold(); // planarImage = UnsharpMaskDescriptor.create(planarImage, kernel, gain, renderingHints); log.warn(">>>> unsharpMask not implemented yet!"); return planarImage; } }
@Override protected PlanarImage execute (final ConvertToBufferedImageOp operation, final EditableImage image, final PlanarImage planarImage) { operation.setBufferedImage(planarImage.getAsBufferedImage()); return planarImage; } }
@Override protected PlanarImage execute (HistogramOp operation, final EditableImage image, PlanarImage planarImage) { operation.setHistogram(new HistogramJAI(planarImage)); return planarImage; } }
@Test public void testExecute() throws IOException { // ImplementationFactoryJ2D.unregister(SizeOp.class); Lookup.getDefault().lookup(ImplementationFactoryJAI.class); final EditableImage image = EditableImage.create(new ReadOp(file_20030701_0043_jpg)); for (float scale = 0.1f; scale <= 1.0f; scale += 0.1f) { final EditableImage result = image.execute2(new SizeOp(scale)); result.execute(new ForceRenderingOp()); result.execute(new WriteOp("JPEG", "build/test/results/result-" + scale + ".jpg")); } } }
@Test public void testWriteOptimizedJPEG() { EditableImage result = img20030701_0043_jpg.execute2(new OptimizeOp(0.5)); File f = (File)result.execute(new WriteOp("JPEG", tmp + "/written-optimized.jpg")).getOutput(); // assertChecksum("b49272bff3e945d32ad9b617a17829ae", f); } }
@Test public void testGetWidth () { for (int w = 1; w < 1000; w += 10) { final CreateOp createOp1 = new CreateOp(w, 10, EditableImage.DataType.BYTE); AssertJUnit.assertEquals(w, createOp1.getWidth()); final CreateOp createOp2 = new CreateOp(w, 10, EditableImage.DataType.BYTE, Color.BLACK); AssertJUnit.assertEquals(w, createOp2.getWidth()); final CreateOp createOp3 = new CreateOp(w, 10, EditableImage.DataType.BYTE, 0); AssertJUnit.assertEquals(w, createOp3.getWidth()); } }
@Test public void testGetHeight () { for (int h = 1; h < 1000; h += 10) { final CreateOp createOp1 = new CreateOp(10, h, EditableImage.DataType.BYTE); AssertJUnit.assertEquals(h, createOp1.getHeight()); final CreateOp createOp2 = new CreateOp(10, h, EditableImage.DataType.BYTE, Color.BLACK); AssertJUnit.assertEquals(h, createOp2.getHeight()); final CreateOp createOp3 = new CreateOp(10, h, EditableImage.DataType.BYTE, 0); AssertJUnit.assertEquals(h, createOp3.getHeight()); } }
@Test(dataProvider="profileNames") public void must_create_a_valid_Granger_rainbow (final @Nonnull String profileName) throws Exception { final EditableImage image = fixture.createGrangerRainbow(1024, 768, profileName); image.execute2(new ConvertToBufferedImageOp()).execute(new WriteOp("TIFF", "/tmp/grangersynth " + profileName + ".tif")); // FIXME: assertion }
private void runTest (EditableImage image, double angle, String checksum, int width, int height) { if (image != null) { EditableImage result = image.execute2(new RotateOp(angle)); String suffix = image.getInnerProperty(SampleModel.class).getClass().getName(); File f = (File)result.execute(new WriteOp("TIFF", tmp + "/" + angle + suffix + ".tif")).getOutput(); assertChecksum(checksum, f); AssertJUnit.assertEquals(width, result.getWidth()); AssertJUnit.assertEquals(height, result.getHeight()); } } }
@Test public void testGetFiller2 () { final Color color = new Color(63, 127, 255); checkColor(new CreateOp(10, 10, EditableImage.DataType.BYTE, color), color, 255); checkColor(new CreateOp(10, 10, EditableImage.DataType.SHORT, color), color, Math.pow(2, 15) - 1); checkColor(new CreateOp(10, 10, EditableImage.DataType.UNSIGNED_SHORT, color), color, Math.pow(2, 16) - 1); checkColor(new CreateOp(10, 10, EditableImage.DataType.INT, color), color, Math.pow(2, 31) - 1); checkColor(new CreateOp(10, 10, EditableImage.DataType.FLOAT, color), color, 1.0); checkColor(new CreateOp(10, 10, EditableImage.DataType.DOUBLE, color), color, 1.0); }
private void convert (final DataType fromType, final DataType toType) { Lookup.getDefault().lookup(ImplementationFactoryJAI.class); final EditableImage image = EditableImage.create(new CreateOp(640, 480, fromType)); assertEquals(fromType, image.getDataType()); assertEquals("KODAK Grayscale Conversion - Gamma 1.0", ImageUtils.getICCProfileName(image.getICCProfile())); assertNotNull(image.getICCProfile()); image.execute(new ChangeFormatOp(toType)); assertEquals(toType, image.getDataType()); assertNotNull(image.getICCProfile()); assertEquals("KODAK Grayscale Conversion - Gamma 1.0", ImageUtils.getICCProfileName(image.getICCProfile())); } }
@Test public void testGetBufferedImage() { System.out.println("getBufferedImage"); ConvertToBufferedImageOp op = new ConvertToBufferedImageOp(); }
@Test public void testToString() { System.out.println("toString"); OptimizeOp op = new OptimizeOp(13.0, Quality.INTERMEDIATE); op.toString(); } }
@Test public void testToString() { System.out.println("toString"); HistogramOp op = new HistogramOp(); op.toString(); } }
private void checkColor (final CreateOp createOp, final Color color, final double max) { final double scale = max / 255.0; AssertJUnit.assertEquals(3, createOp.getFiller().length); AssertJUnit.assertEquals(scale * color.getRed(), createOp.getFiller()[0], 0.0); AssertJUnit.assertEquals(scale * color.getGreen(), createOp.getFiller()[1], 0.0); AssertJUnit.assertEquals(scale * color.getBlue(), createOp.getFiller()[2], 0.0); } }
@Override protected long runTest (EditableImage image) { long accTime = 0; for (double scale = 0.1; scale <= 1; scale += 0.1) { log(">>>> scale: " + scale); EditableImage image2 = image.execute2(new OptimizeOp(scale, Quality.INTERMEDIATE)); accTime += image2.getLatestOperationTime(); } return accTime; } }
@Test public void testGetBufferedImage() { System.out.println("getBufferedImage"); ConvertToBufferedImageOp op = new ConvertToBufferedImageOp(); // EditableImage image; // BufferedImage bufferedImage = image.execute(new ConvertToBufferedImageOp()).getBufferedImage(); }