This is an automated email from the ASF dual-hosted git repository. kinow pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-imaging.git
commit b1970c724dc1d46cfc482b97ed3f22fb72fb1bf0 Author: Bruno P. Kinoshita <ki...@apache.org> AuthorDate: Fri Apr 23 11:32:23 2021 +1200 [IMAGING-159] Update test and examples --- .../common/bytesource/ByteSourceImageTest.java | 12 +++-- .../bytesource/ByteSourceInputStreamTest.java | 8 +-- .../examples/ApacheImagingSpeedAndMemoryTest.java | 4 +- .../commons/imaging/examples/ImageReadExample.java | 11 ++-- .../imaging/examples/ImageWriteExample.java | 15 ++---- .../commons/imaging/examples/SampleUsage.java | 9 ++-- .../tiff/ExampleReadFloatingPointData.java | 4 +- .../examples/tiff/ReadAndRenderFloatingPoint.java | 11 ++-- .../imaging/examples/tiff/ReadTagsAndImages.java | 3 +- .../imaging/formats/bmp/BmpImageParserTest.java | 5 +- .../commons/imaging/formats/bmp/BmpReadTest.java | 4 +- .../imaging/formats/bmp/BmpRoundtripTest.java | 8 +-- .../commons/imaging/formats/dcx/DcxReadTest.java | 4 +- .../commons/imaging/formats/icns/IcnsReadTest.java | 3 +- .../commons/imaging/formats/ico/IcoReadTest.java | 3 +- .../commons/imaging/formats/jpeg/JpegReadTest.java | 10 ++-- .../jpeg/JpegWithInvalidDhtSegmentTest.java | 3 +- .../formats/jpeg/JpegWithJpegThumbnailTest.java | 4 +- .../imaging/formats/jpeg/exif/AsciiFieldTest.java | 3 +- .../imaging/formats/jpeg/exif/ExifDumpTest.java | 8 ++- .../commons/imaging/formats/jpeg/exif/GpsTest.java | 8 ++- .../formats/jpeg/exif/MicrosoftTagTest.java | 11 ++-- .../formats/jpeg/exif/SpecificExifTagTest.java | 8 ++- .../imaging/formats/jpeg/iptc/IptcAddTest.java | 8 ++- .../imaging/formats/jpeg/iptc/IptcDumpTest.java | 8 ++- .../imaging/formats/jpeg/iptc/IptcParserTest.java | 4 +- .../imaging/formats/jpeg/iptc/IptcUpdateTest.java | 20 ++++---- .../formats/jpeg/segments/NegSizeSegmentTest.java | 4 +- .../imaging/formats/jpeg/xmp/JpegXmpDumpTest.java | 5 +- .../formats/jpeg/xmp/JpegXmpRewriteTest.java | 5 +- .../commons/imaging/formats/pam/PamReadTest.java | 5 +- .../commons/imaging/formats/pcx/PcxReadTest.java | 6 +-- .../imaging/formats/png/ConvertPngToGifTest.java | 16 ++---- .../formats/png/PngMultipleRoundtripTest.java | 16 ++---- .../commons/imaging/formats/png/PngTextTest.java | 10 ++-- .../png/PngWithInvalidPngChunkSizeTest.java | 11 ++-- .../formats/png/PngWriteForceTrueColorText.java | 17 ++----- .../imaging/formats/png/PngWriteReadTest.java | 40 +++++---------- .../imaging/formats/pnm/PnmImageParserTest.java | 18 +++---- .../commons/imaging/formats/psd/PsdReadTest.java | 4 +- .../commons/imaging/formats/rgbe/RgbeReadTest.java | 4 +- .../formats/tiff/TiffAlphaRoundTripTest.java | 24 ++++----- .../imaging/formats/tiff/TiffCcittTest.java | 59 ++++++++-------------- .../formats/tiff/TiffFloatingPointReadTest.java | 24 ++++----- .../tiff/TiffFloatingPointRoundTripTest.java | 6 +-- .../commons/imaging/formats/tiff/TiffLzwTest.java | 4 +- .../commons/imaging/formats/tiff/TiffReadTest.java | 2 - .../formats/tiff/TiffReadWriteTagsTest.java | 3 +- .../imaging/formats/tiff/TiffRoundtripTest.java | 11 ++-- .../imaging/formats/tiff/TiffSubImageTest.java | 48 ++++++++---------- .../commons/imaging/formats/wbmp/WbmpReadTest.java | 5 +- .../commons/imaging/formats/xbm/XbmReadTest.java | 5 +- .../commons/imaging/formats/xmp/XmpUpdateTest.java | 47 +++++++---------- .../commons/imaging/formats/xpm/XpmReadTest.java | 4 +- .../roundtrip/NullParametersRoundtripTest.java | 2 +- .../imaging/roundtrip/PixelDensityRoundtrip.java | 11 ++-- .../commons/imaging/roundtrip/RoundtripBase.java | 16 +++--- 57 files changed, 236 insertions(+), 395 deletions(-) diff --git a/src/test/java/org/apache/commons/imaging/common/bytesource/ByteSourceImageTest.java b/src/test/java/org/apache/commons/imaging/common/bytesource/ByteSourceImageTest.java index 801769c..943435c 100644 --- a/src/test/java/org/apache/commons/imaging/common/bytesource/ByteSourceImageTest.java +++ b/src/test/java/org/apache/commons/imaging/common/bytesource/ByteSourceImageTest.java @@ -31,8 +31,6 @@ import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.lang.reflect.Modifier; -import java.util.HashMap; -import java.util.Map; import java.util.stream.Stream; import org.apache.commons.imaging.ImageFormat; @@ -40,7 +38,8 @@ import org.apache.commons.imaging.ImageFormats; import org.apache.commons.imaging.ImageInfo; import org.apache.commons.imaging.ImageReadException; import org.apache.commons.imaging.Imaging; -import org.apache.commons.imaging.ImagingConstants; +import org.apache.commons.imaging.ImagingParameters; +import org.apache.commons.imaging.formats.jpeg.JpegImagingParameters; import org.apache.commons.imaging.internal.Debug; import org.apache.commons.io.FileUtils; import org.junit.jupiter.params.ParameterizedTest; @@ -161,12 +160,15 @@ public class ByteSourceImageTest extends ByteSourceTest { public void checkGetImageInfo(final File imageFile, final byte[] imageFileBytes) throws IOException, ImageReadException, IllegalAccessException, IllegalArgumentException, InvocationTargetException { - final Map<String, Object> params = new HashMap<>(); + final ImagingParameters params; final boolean ignoreImageData = isPhilHarveyTestImage(imageFile); final ImageFormat imageFormat = Imaging.guessFormat(imageFile); if (imageFormat.equals(ImageFormats.TIFF) || imageFormat.equals(ImageFormats.JPEG)) { - params.put(ImagingConstants.PARAM_KEY_READ_THUMBNAILS, Boolean.valueOf(!ignoreImageData)); + params = new JpegImagingParameters(); + ((JpegImagingParameters) params).setReadThumbnails(Boolean.valueOf(!ignoreImageData)); + } else { + params = new ImagingParameters(); } final ImageInfo imageInfoFile = Imaging.getImageInfo(imageFile, params); diff --git a/src/test/java/org/apache/commons/imaging/common/bytesource/ByteSourceInputStreamTest.java b/src/test/java/org/apache/commons/imaging/common/bytesource/ByteSourceInputStreamTest.java index 559bbef..e81bb00 100644 --- a/src/test/java/org/apache/commons/imaging/common/bytesource/ByteSourceInputStreamTest.java +++ b/src/test/java/org/apache/commons/imaging/common/bytesource/ByteSourceInputStreamTest.java @@ -23,12 +23,11 @@ import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; -import java.util.Collections; import org.apache.commons.imaging.ImageReadException; import org.apache.commons.imaging.Imaging; -import org.apache.commons.imaging.ImagingConstants; import org.apache.commons.imaging.ImagingTestConstants; +import org.apache.commons.imaging.formats.ico.IcoImagingParameters; import org.apache.commons.io.FilenameUtils; import org.junit.jupiter.api.Test; @@ -45,8 +44,9 @@ class ByteSourceInputStreamTest { final File imageFile = new File(ImagingTestConstants.TEST_IMAGE_FOLDER, imagePath); try(BufferedInputStream imageStream = new BufferedInputStream(new FileInputStream(imageFile))) { // ByteSourceInputStream is created inside of following method - final BufferedImage bufferedImage = Imaging.getBufferedImage(imageStream, - Collections.singletonMap(ImagingConstants.PARAM_KEY_FILENAME, ICO_IMAGE_FILE)); + IcoImagingParameters params = new IcoImagingParameters(); + params.setFileName(ICO_IMAGE_FILE); + final BufferedImage bufferedImage = Imaging.getBufferedImage(imageStream, params); assertEquals(bufferedImage.getWidth(), ICO_IMAGE_WIDTH); assertEquals(bufferedImage.getHeight(), ICO_IMAGE_HEIGHT); diff --git a/src/test/java/org/apache/commons/imaging/examples/ApacheImagingSpeedAndMemoryTest.java b/src/test/java/org/apache/commons/imaging/examples/ApacheImagingSpeedAndMemoryTest.java index 5dc6b30..d1c4d3e 100644 --- a/src/test/java/org/apache/commons/imaging/examples/ApacheImagingSpeedAndMemoryTest.java +++ b/src/test/java/org/apache/commons/imaging/examples/ApacheImagingSpeedAndMemoryTest.java @@ -157,11 +157,11 @@ import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.io.PrintStream; -import java.util.HashMap; import org.apache.commons.imaging.ImageReadException; import org.apache.commons.imaging.common.bytesource.ByteSourceFile; import org.apache.commons.imaging.formats.tiff.TiffImageParser; +import org.apache.commons.imaging.formats.tiff.TiffImagingParameters; /** * A "test stand" for evaluating the speed an memory use of different Apache * Imaging operations @@ -202,7 +202,7 @@ public class ApacheImagingSpeedAndMemoryTest { // new ByteSourceInputStream(bins, target.getName()); // ready the parser (you may modify this code block // to use your parser of choice) - HashMap<String, Object> params = new HashMap<>(); + TiffImagingParameters params = new TiffImagingParameters(); TiffImageParser tiffImageParser = new TiffImageParser(); // load the file and record time needed to do so final long time0Nanos = System.nanoTime(); diff --git a/src/test/java/org/apache/commons/imaging/examples/ImageReadExample.java b/src/test/java/org/apache/commons/imaging/examples/ImageReadExample.java index 6090151..3307ca7 100644 --- a/src/test/java/org/apache/commons/imaging/examples/ImageReadExample.java +++ b/src/test/java/org/apache/commons/imaging/examples/ImageReadExample.java @@ -23,24 +23,21 @@ import java.awt.Transparency; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; -import java.util.HashMap; -import java.util.Map; import org.apache.commons.imaging.ImageReadException; import org.apache.commons.imaging.Imaging; -import org.apache.commons.imaging.ImagingConstants; +import org.apache.commons.imaging.ImagingParameters; import org.apache.commons.imaging.common.BufferedImageFactory; public class ImageReadExample { public static BufferedImage imageReadExample(final File file) throws ImageReadException, IOException { - final Map<String, Object> params = new HashMap<>(); + final ImagingParameters params = new ImagingParameters(); // set optional parameters if you like - params.put(ImagingConstants.BUFFERED_IMAGE_FACTORY, - new ManagedImageBufferedImageFactory()); + params.setBufferedImageFactory(new ManagedImageBufferedImageFactory()); - // params.put(ImagingConstants.PARAM_KEY_VERBOSE, Boolean.TRUE); + // params.setStrict(Boolean.TRUE); // read and return the image return Imaging.getBufferedImage(file, params); diff --git a/src/test/java/org/apache/commons/imaging/examples/ImageWriteExample.java b/src/test/java/org/apache/commons/imaging/examples/ImageWriteExample.java index e94c75b..aefc017 100644 --- a/src/test/java/org/apache/commons/imaging/examples/ImageWriteExample.java +++ b/src/test/java/org/apache/commons/imaging/examples/ImageWriteExample.java @@ -19,15 +19,11 @@ package org.apache.commons.imaging.examples; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; -import java.util.HashMap; -import java.util.Map; -import org.apache.commons.imaging.ImageFormat; -import org.apache.commons.imaging.ImageFormats; import org.apache.commons.imaging.ImageReadException; import org.apache.commons.imaging.ImageWriteException; import org.apache.commons.imaging.Imaging; -import org.apache.commons.imaging.ImagingConstants; +import org.apache.commons.imaging.formats.tiff.TiffImagingParameters; import org.apache.commons.imaging.formats.tiff.constants.TiffConstants; public class ImageWriteExample { @@ -36,14 +32,11 @@ public class ImageWriteExample { // read image final BufferedImage image = Imaging.getBufferedImage(file); - final ImageFormat format = ImageFormats.TIFF; - final Map<String, Object> params = new HashMap<>(); - // set optional parameters if you like - params.put(ImagingConstants.PARAM_KEY_COMPRESSION, Integer.valueOf( - TiffConstants.TIFF_COMPRESSION_UNCOMPRESSED)); + final TiffImagingParameters params = new TiffImagingParameters(); + params.setCompression(TiffConstants.TIFF_COMPRESSION_UNCOMPRESSED); - return Imaging.writeImageToBytes(image, format, params); + return Imaging.writeImageToBytes(image, params); } } diff --git a/src/test/java/org/apache/commons/imaging/examples/SampleUsage.java b/src/test/java/org/apache/commons/imaging/examples/SampleUsage.java index 4e7955d..40a43c8 100644 --- a/src/test/java/org/apache/commons/imaging/examples/SampleUsage.java +++ b/src/test/java/org/apache/commons/imaging/examples/SampleUsage.java @@ -22,8 +22,6 @@ import java.awt.image.BufferedImage; import java.io.File; import java.io.InputStream; import java.io.OutputStream; -import java.util.HashMap; -import java.util.Map; import org.apache.commons.imaging.FormatCompliance; import org.apache.commons.imaging.ImageFormat; @@ -31,6 +29,7 @@ import org.apache.commons.imaging.ImageFormats; import org.apache.commons.imaging.ImageInfo; import org.apache.commons.imaging.Imaging; import org.apache.commons.imaging.common.ImageMetadata; +import org.apache.commons.imaging.formats.png.PngImagingParameters; public class SampleUsage { @@ -67,11 +66,11 @@ public class SampleUsage { final BufferedImage image = someImage; final File dst = someFile; final ImageFormat format = ImageFormats.PNG; - final Map<String, Object> optionalParams = new HashMap<>(); - Imaging.writeImage(image, dst, format, optionalParams); + final PngImagingParameters optionalParams = new PngImagingParameters(); + Imaging.writeImage(image, dst, optionalParams); final OutputStream os = someOutputStream; - Imaging.writeImage(image, os, format, optionalParams); + Imaging.writeImage(image, os, optionalParams); // <b>get the image's embedded ICC Profile, if it has one. </b> final byte[] iccProfileBytes = Imaging.getICCProfileBytes(imageBytes); diff --git a/src/test/java/org/apache/commons/imaging/examples/tiff/ExampleReadFloatingPointData.java b/src/test/java/org/apache/commons/imaging/examples/tiff/ExampleReadFloatingPointData.java index 0e1aa51..9970a73 100644 --- a/src/test/java/org/apache/commons/imaging/examples/tiff/ExampleReadFloatingPointData.java +++ b/src/test/java/org/apache/commons/imaging/examples/tiff/ExampleReadFloatingPointData.java @@ -21,7 +21,6 @@ import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; import javax.imageio.ImageIO; @@ -30,6 +29,7 @@ import org.apache.commons.imaging.FormatCompliance; import org.apache.commons.imaging.ImageReadException; import org.apache.commons.imaging.common.ImageBuilder; import org.apache.commons.imaging.common.bytesource.ByteSourceFile; +import org.apache.commons.imaging.formats.jpeg.JpegImagingParameters; import org.apache.commons.imaging.formats.tiff.TiffContents; import org.apache.commons.imaging.formats.tiff.TiffDirectory; import org.apache.commons.imaging.formats.tiff.TiffRasterData; @@ -115,7 +115,7 @@ public class ExampleReadFloatingPointData { // to specify what section of the data is to be extracted. // See the Javadoc for readFloatingPointRasterData for more details. final long time0Nanos = System.nanoTime(); - final HashMap<String, Object> params = new HashMap<>(); + final JpegImagingParameters params = new JpegImagingParameters(); final TiffRasterData rasterData = directory.getRasterData(params); final long time1Nanos = System.nanoTime(); diff --git a/src/test/java/org/apache/commons/imaging/examples/tiff/ReadAndRenderFloatingPoint.java b/src/test/java/org/apache/commons/imaging/examples/tiff/ReadAndRenderFloatingPoint.java index c83200c..68401e3 100644 --- a/src/test/java/org/apache/commons/imaging/examples/tiff/ReadAndRenderFloatingPoint.java +++ b/src/test/java/org/apache/commons/imaging/examples/tiff/ReadAndRenderFloatingPoint.java @@ -19,17 +19,16 @@ package org.apache.commons.imaging.examples.tiff; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; -import java.util.HashMap; import javax.imageio.ImageIO; import org.apache.commons.imaging.FormatCompliance; import org.apache.commons.imaging.ImageReadException; import org.apache.commons.imaging.common.bytesource.ByteSourceFile; +import org.apache.commons.imaging.formats.jpeg.JpegImagingParameters; import org.apache.commons.imaging.formats.tiff.TiffContents; import org.apache.commons.imaging.formats.tiff.TiffDirectory; import org.apache.commons.imaging.formats.tiff.TiffReader; -import org.apache.commons.imaging.formats.tiff.constants.TiffConstants; import org.apache.commons.imaging.formats.tiff.constants.TiffTagConstants; import org.apache.commons.imaging.formats.tiff.photometricinterpreters.floatingpoint.PhotometricInterpreterFloat; @@ -147,8 +146,8 @@ public class ReadAndRenderFloatingPoint { // For this demo, we store the Photometric Interpreter instance // as a option-parameter to be passed into the read-image method. final PhotometricInterpreterFloat pi = new PhotometricInterpreterFloat(0.0f, 1.0f); - HashMap<String, Object> params = new HashMap<>(); - params.put(TiffConstants.PARAM_KEY_CUSTOM_PHOTOMETRIC_INTERPRETER, pi); + JpegImagingParameters params = new JpegImagingParameters(); + params.setCustomPhotometricInterpreter(pi); BufferedImage bImage = directory.getTiffImage(params); final float maxValue = pi.getMaxFound(); @@ -163,8 +162,8 @@ public class ReadAndRenderFloatingPoint { // of values found above. final PhotometricInterpreterFloat grayScale = new PhotometricInterpreterFloat(minValue, maxValue); - params = new HashMap<>(); - params.put(TiffConstants.PARAM_KEY_CUSTOM_PHOTOMETRIC_INTERPRETER, grayScale); + params = new JpegImagingParameters(); + params.setCustomPhotometricInterpreter(grayScale); bImage = directory.getTiffImage(params); ImageIO.write(bImage, "JPEG", output); } diff --git a/src/test/java/org/apache/commons/imaging/examples/tiff/ReadTagsAndImages.java b/src/test/java/org/apache/commons/imaging/examples/tiff/ReadTagsAndImages.java index 200f32a..070bfb5 100644 --- a/src/test/java/org/apache/commons/imaging/examples/tiff/ReadTagsAndImages.java +++ b/src/test/java/org/apache/commons/imaging/examples/tiff/ReadTagsAndImages.java @@ -26,6 +26,7 @@ import javax.imageio.ImageIO; import org.apache.commons.imaging.FormatCompliance; import org.apache.commons.imaging.ImageReadException; import org.apache.commons.imaging.common.bytesource.ByteSourceFile; +import org.apache.commons.imaging.formats.jpeg.JpegImagingParameters; import org.apache.commons.imaging.formats.tiff.TiffContents; import org.apache.commons.imaging.formats.tiff.TiffDirectory; import org.apache.commons.imaging.formats.tiff.TiffField; @@ -81,7 +82,7 @@ public class ReadTagsAndImages { = rootName != null && !rootName.isEmpty(); final ByteSourceFile byteSource = new ByteSourceFile(target); - final HashMap<String, Object> params = new HashMap<>(); + final JpegImagingParameters params = new JpegImagingParameters(); // Establish a TiffReader. This is just a simple constructor that // does not actually access the file. So the application cannot diff --git a/src/test/java/org/apache/commons/imaging/formats/bmp/BmpImageParserTest.java b/src/test/java/org/apache/commons/imaging/formats/bmp/BmpImageParserTest.java index 4a371bc..9058afb 100644 --- a/src/test/java/org/apache/commons/imaging/formats/bmp/BmpImageParserTest.java +++ b/src/test/java/org/apache/commons/imaging/formats/bmp/BmpImageParserTest.java @@ -21,7 +21,6 @@ import static org.junit.jupiter.api.Assertions.assertThrows; import java.io.File; import java.io.IOException; -import java.util.Collections; import org.apache.commons.imaging.ImageInfo; import org.apache.commons.imaging.ImageReadException; @@ -43,7 +42,7 @@ public class BmpImageParserTest { final String file = "/images/bmp/IMAGING-264/test-72_6-dpi.bmp"; final File bmp = new File(BmpImageParser.class.getResource(file).getFile()); final BmpImageParser parser = new BmpImageParser(); - final ImageInfo imageInfo = parser.getImageInfo(bmp, Collections.emptyMap()); + final ImageInfo imageInfo = parser.getImageInfo(bmp, new BmpImagingParameters()); assertEquals(73, imageInfo.getPhysicalWidthDpi(), "Expected 72.6 resolution to be rounded to 73"); } @@ -57,6 +56,6 @@ public class BmpImageParserTest { final String file = "/images/bmp/IMAGING-279/negative_array_size_exception.bmp"; final File bmp = new File(BmpImageParser.class.getResource(file).getFile()); final BmpImageParser parser = new BmpImageParser(); - assertThrows(IOException.class, () -> parser.getImageInfo(bmp, Collections.emptyMap())); + assertThrows(IOException.class, () -> parser.getImageInfo(bmp, new BmpImagingParameters())); } } diff --git a/src/test/java/org/apache/commons/imaging/formats/bmp/BmpReadTest.java b/src/test/java/org/apache/commons/imaging/formats/bmp/BmpReadTest.java index 8968af2..7126b26 100644 --- a/src/test/java/org/apache/commons/imaging/formats/bmp/BmpReadTest.java +++ b/src/test/java/org/apache/commons/imaging/formats/bmp/BmpReadTest.java @@ -22,8 +22,6 @@ import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.Collection; -import java.util.Collections; -import java.util.Map; import org.apache.commons.imaging.ImageInfo; import org.apache.commons.imaging.ImageReadException; @@ -45,7 +43,7 @@ public class BmpReadTest extends BmpBaseTest { @ParameterizedTest @MethodSource("data") public void testImageInfo(final File imageFile) throws ImageReadException, IOException { - final Map<String, Object> params = Collections.emptyMap(); + final BmpImagingParameters params = new BmpImagingParameters(); final ImageInfo imageInfo = Imaging.getImageInfo(imageFile, params); assertNotNull(imageInfo); // TODO assert more diff --git a/src/test/java/org/apache/commons/imaging/formats/bmp/BmpRoundtripTest.java b/src/test/java/org/apache/commons/imaging/formats/bmp/BmpRoundtripTest.java index d9d8945..20139e6 100644 --- a/src/test/java/org/apache/commons/imaging/formats/bmp/BmpRoundtripTest.java +++ b/src/test/java/org/apache/commons/imaging/formats/bmp/BmpRoundtripTest.java @@ -23,11 +23,8 @@ import static org.junit.jupiter.api.Assertions.assertNotNull; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; -import java.util.HashMap; -import java.util.Map; import java.util.Random; -import org.apache.commons.imaging.ImageFormats; import org.apache.commons.imaging.ImageReadException; import org.apache.commons.imaging.ImageWriteException; import org.apache.commons.imaging.Imaging; @@ -140,14 +137,13 @@ public class BmpRoundtripTest extends BmpBaseTest { ImageReadException, ImageWriteException { final BufferedImage srcImage = imageDataToBufferedImage(rawData); - final Map<String, Object> writeParams = new HashMap<>(); + final BmpImagingParameters writeParams = new BmpImagingParameters(); // writeParams.put(ImagingConstants.PARAM_KEY_FORMAT, // ImageFormat.IMAGE_FORMAT_BMP); // writeParams.put(PngConstants.PARAM_KEY_BMP_FORCE_TRUE_COLOR, // Boolean.TRUE); - final byte[] bytes = Imaging.writeImageToBytes(srcImage, - ImageFormats.BMP, writeParams); + final byte[] bytes = Imaging.writeImageToBytes(srcImage, writeParams); // Debug.debug("bytes", bytes); diff --git a/src/test/java/org/apache/commons/imaging/formats/dcx/DcxReadTest.java b/src/test/java/org/apache/commons/imaging/formats/dcx/DcxReadTest.java index f7d2485..69a9ef5 100644 --- a/src/test/java/org/apache/commons/imaging/formats/dcx/DcxReadTest.java +++ b/src/test/java/org/apache/commons/imaging/formats/dcx/DcxReadTest.java @@ -21,10 +21,10 @@ import static org.junit.jupiter.api.Assertions.assertNotNull; import java.awt.image.BufferedImage; import java.io.File; -import java.util.Collections; import java.util.stream.Stream; import org.apache.commons.imaging.Imaging; +import org.apache.commons.imaging.formats.pcx.PcxImagingParameters; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.params.ParameterizedTest; @@ -47,7 +47,7 @@ public class DcxReadTest extends DcxBaseTest { @ParameterizedTest @MethodSource("data") public void testImageInfo(final File imageFile) throws Exception { - Imaging.getImageInfo(imageFile, Collections.emptyMap()); + Imaging.getImageInfo(imageFile, new PcxImagingParameters()); } @ParameterizedTest diff --git a/src/test/java/org/apache/commons/imaging/formats/icns/IcnsReadTest.java b/src/test/java/org/apache/commons/imaging/formats/icns/IcnsReadTest.java index 1730cfb..61fc17f 100644 --- a/src/test/java/org/apache/commons/imaging/formats/icns/IcnsReadTest.java +++ b/src/test/java/org/apache/commons/imaging/formats/icns/IcnsReadTest.java @@ -24,7 +24,6 @@ import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.Arrays; -import java.util.Collections; import java.util.List; import java.util.stream.Stream; @@ -70,7 +69,7 @@ public class IcnsReadTest extends IcnsBaseTest { @ParameterizedTest @MethodSource("data") public void testImageInfo(final File imageFile) throws Exception { - final ImageInfo imageInfo = Imaging.getImageInfo(imageFile, Collections.emptyMap()); + final ImageInfo imageInfo = Imaging.getImageInfo(imageFile, new IcnsImagingParameters()); assertNotNull(imageInfo); } diff --git a/src/test/java/org/apache/commons/imaging/formats/ico/IcoReadTest.java b/src/test/java/org/apache/commons/imaging/formats/ico/IcoReadTest.java index a4590ec..ad5339d 100644 --- a/src/test/java/org/apache/commons/imaging/formats/ico/IcoReadTest.java +++ b/src/test/java/org/apache/commons/imaging/formats/ico/IcoReadTest.java @@ -21,7 +21,6 @@ import static org.junit.jupiter.api.Assertions.assertNotNull; import java.awt.image.BufferedImage; import java.io.File; -import java.util.Collections; import java.util.stream.Stream; import org.apache.commons.imaging.Imaging; @@ -47,7 +46,7 @@ public class IcoReadTest extends IcoBaseTest { @ParameterizedTest @MethodSource("data") public void testImageInfo(final File imageFile) { - Assertions.assertThrows(UnsupportedOperationException.class, () -> Imaging.getImageInfo(imageFile, Collections.emptyMap())); + Assertions.assertThrows(UnsupportedOperationException.class, () -> Imaging.getImageInfo(imageFile, new IcoImagingParameters())); } @ParameterizedTest diff --git a/src/test/java/org/apache/commons/imaging/formats/jpeg/JpegReadTest.java b/src/test/java/org/apache/commons/imaging/formats/jpeg/JpegReadTest.java index 20b221e..cf28e78 100644 --- a/src/test/java/org/apache/commons/imaging/formats/jpeg/JpegReadTest.java +++ b/src/test/java/org/apache/commons/imaging/formats/jpeg/JpegReadTest.java @@ -24,15 +24,11 @@ import static org.junit.jupiter.api.Assertions.assertThrows; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; -import java.util.Collections; -import java.util.HashMap; -import java.util.Map; import java.util.stream.Stream; import org.apache.commons.imaging.ImageInfo; import org.apache.commons.imaging.ImageReadException; import org.apache.commons.imaging.Imaging; -import org.apache.commons.imaging.ImagingConstants; import org.apache.commons.imaging.common.ImageMetadata; import org.apache.commons.imaging.common.bytesource.ByteSourceFile; import org.apache.commons.imaging.internal.Debug; @@ -49,9 +45,9 @@ public class JpegReadTest extends JpegBaseTest { @ParameterizedTest @MethodSource("data") public void test(final File imageFile) throws Exception { - final Map<String, Object> params = new HashMap<>(); + final JpegImagingParameters params = new JpegImagingParameters(); final boolean ignoreImageData = isPhilHarveyTestImage(imageFile); - params.put(ImagingConstants.PARAM_KEY_READ_THUMBNAILS, Boolean.valueOf(!ignoreImageData)); + params.setReadThumbnails(!ignoreImageData); final ImageMetadata metadata = Imaging.getMetadata(imageFile, params); // TODO only run this tests with images that have metadata... @@ -88,7 +84,7 @@ public class JpegReadTest extends JpegBaseTest { final String input = "/images/jpeg/oss-fuzz-33458/clusterfuzz-testcase-minimized-ImagingJpegFuzzer-4548690447564800"; final String file = JpegReadTest.class.getResource(input).getFile(); final JpegImageParser parser = new JpegImageParser(); - assertThrows(ImageReadException.class, () -> parser.getBufferedImage(new ByteSourceFile(new File(file)), Collections.emptyMap())); + assertThrows(ImageReadException.class, () -> parser.getBufferedImage(new ByteSourceFile(new File(file)), new JpegImagingParameters())); } } diff --git a/src/test/java/org/apache/commons/imaging/formats/jpeg/JpegWithInvalidDhtSegmentTest.java b/src/test/java/org/apache/commons/imaging/formats/jpeg/JpegWithInvalidDhtSegmentTest.java index b0cd416..a59c7c2 100644 --- a/src/test/java/org/apache/commons/imaging/formats/jpeg/JpegWithInvalidDhtSegmentTest.java +++ b/src/test/java/org/apache/commons/imaging/formats/jpeg/JpegWithInvalidDhtSegmentTest.java @@ -18,7 +18,6 @@ package org.apache.commons.imaging.formats.jpeg; import java.io.File; -import java.util.Collections; import org.apache.commons.imaging.ImageReadException; import org.apache.commons.imaging.Imaging; @@ -38,6 +37,6 @@ public class JpegWithInvalidDhtSegmentTest { final File imageFile = new File(JpegWithInvalidDhtSegmentTest.class .getResource("/IMAGING-215/ArrayIndexOutOfBoundsException_DhtSegment_79.jpeg") .getFile()); - Assertions.assertThrows(ImageReadException.class, () -> Imaging.getMetadata(imageFile, Collections.emptyMap())); + Assertions.assertThrows(ImageReadException.class, () -> Imaging.getMetadata(imageFile, new JpegImagingParameters())); } } diff --git a/src/test/java/org/apache/commons/imaging/formats/jpeg/JpegWithJpegThumbnailTest.java b/src/test/java/org/apache/commons/imaging/formats/jpeg/JpegWithJpegThumbnailTest.java index 33339e8..f0ae971 100644 --- a/src/test/java/org/apache/commons/imaging/formats/jpeg/JpegWithJpegThumbnailTest.java +++ b/src/test/java/org/apache/commons/imaging/formats/jpeg/JpegWithJpegThumbnailTest.java @@ -21,8 +21,6 @@ import static org.junit.jupiter.api.Assertions.assertNotNull; import java.awt.image.BufferedImage; import java.io.File; -import java.util.HashMap; -import java.util.Map; import org.apache.commons.imaging.Imaging; import org.apache.commons.imaging.ImagingTest; @@ -35,7 +33,7 @@ public class JpegWithJpegThumbnailTest extends ImagingTest { public void testSingleImage() throws Exception { final File imageFile = getTestImageByName("img_F028c_small.jpg"); - final Map<String, Object> params = new HashMap<>(); + final JpegImagingParameters params = new JpegImagingParameters(); final ImageMetadata metadata = Imaging.getMetadata(imageFile, params); assertNotNull(metadata); final JpegImageMetadata jpegMetadata = (JpegImageMetadata) metadata; diff --git a/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/AsciiFieldTest.java b/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/AsciiFieldTest.java index 6b8f254..40ee945 100644 --- a/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/AsciiFieldTest.java +++ b/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/AsciiFieldTest.java @@ -29,6 +29,7 @@ import java.util.Map; import org.apache.commons.imaging.Imaging; import org.apache.commons.imaging.common.ImageMetadata; import org.apache.commons.imaging.formats.jpeg.JpegImageMetadata; +import org.apache.commons.imaging.formats.jpeg.JpegImagingParameters; import org.apache.commons.imaging.formats.tiff.TiffField; import org.apache.commons.imaging.formats.tiff.TiffImageMetadata; import org.apache.commons.imaging.formats.tiff.constants.TiffTagConstants; @@ -40,7 +41,7 @@ public class AsciiFieldTest extends ExifBaseTest { public void testSingleImage() throws Exception { final File imageFile = getTestImageByName("Canon Powershot SD750 - 2007.12.26.n.IMG_3704.JPG"); - final Map<String, Object> params = new HashMap<>(); + final JpegImagingParameters params = new JpegImagingParameters(); final ImageMetadata metadata = Imaging.getMetadata(imageFile, params); assertNotNull(metadata); diff --git a/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/ExifDumpTest.java b/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/ExifDumpTest.java index fdb4e1e..a01cab6 100644 --- a/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/ExifDumpTest.java +++ b/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/ExifDumpTest.java @@ -20,15 +20,13 @@ package org.apache.commons.imaging.formats.jpeg.exif; import static org.junit.jupiter.api.Assertions.assertNotNull; import java.io.File; -import java.util.HashMap; -import java.util.Map; import java.util.stream.Stream; import org.apache.commons.imaging.Imaging; -import org.apache.commons.imaging.ImagingConstants; import org.apache.commons.imaging.common.bytesource.ByteSource; import org.apache.commons.imaging.common.bytesource.ByteSourceFile; import org.apache.commons.imaging.formats.jpeg.JpegImageMetadata; +import org.apache.commons.imaging.formats.jpeg.JpegImagingParameters; import org.apache.commons.imaging.formats.jpeg.JpegUtils; import org.apache.commons.imaging.internal.Debug; import org.junit.jupiter.params.ParameterizedTest; @@ -52,9 +50,9 @@ public class ExifDumpTest extends ExifBaseTest { @ParameterizedTest @MethodSource("data") public void testMetadata(final File imageFile) throws Exception { - final Map<String, Object> params = new HashMap<>(); + final JpegImagingParameters params = new JpegImagingParameters(); final boolean ignoreImageData = isPhilHarveyTestImage(imageFile); - params.put(ImagingConstants.PARAM_KEY_READ_THUMBNAILS, Boolean.valueOf(!ignoreImageData)); + params.setReadThumbnails(!ignoreImageData); final JpegImageMetadata metadata = (JpegImageMetadata) Imaging.getMetadata(imageFile, params); assertNotNull(metadata); diff --git a/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/GpsTest.java b/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/GpsTest.java index 7cdf91c..51eec61 100644 --- a/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/GpsTest.java +++ b/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/GpsTest.java @@ -18,13 +18,11 @@ package org.apache.commons.imaging.formats.jpeg.exif; import java.io.File; -import java.util.HashMap; -import java.util.Map; import java.util.stream.Stream; import org.apache.commons.imaging.Imaging; -import org.apache.commons.imaging.ImagingConstants; import org.apache.commons.imaging.formats.jpeg.JpegImageMetadata; +import org.apache.commons.imaging.formats.jpeg.JpegImagingParameters; import org.apache.commons.imaging.formats.tiff.TiffImageMetadata; import org.apache.commons.imaging.internal.Debug; import org.junit.jupiter.params.ParameterizedTest; @@ -43,9 +41,9 @@ public class GpsTest extends ExifBaseTest { return; } - final Map<String, Object> params = new HashMap<>(); + final JpegImagingParameters params = new JpegImagingParameters(); final boolean ignoreImageData = isPhilHarveyTestImage(imageFile); - params.put(ImagingConstants.PARAM_KEY_READ_THUMBNAILS, Boolean.valueOf(!ignoreImageData)); + params.setReadThumbnails(!ignoreImageData); final JpegImageMetadata metadata = (JpegImageMetadata) Imaging.getMetadata(imageFile, params); if (null == metadata) { diff --git a/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/MicrosoftTagTest.java b/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/MicrosoftTagTest.java index 93ee728..1859e50 100644 --- a/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/MicrosoftTagTest.java +++ b/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/MicrosoftTagTest.java @@ -24,20 +24,17 @@ import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.List; -import java.util.Map; -import java.util.TreeMap; -import org.apache.commons.imaging.ImageFormats; import org.apache.commons.imaging.ImageReadException; import org.apache.commons.imaging.ImageWriteException; import org.apache.commons.imaging.Imaging; -import org.apache.commons.imaging.ImagingConstants; import org.apache.commons.imaging.common.ImageMetadata; import org.apache.commons.imaging.formats.jpeg.JpegImageMetadata; import org.apache.commons.imaging.formats.jpeg.iptc.JpegIptcRewriter; import org.apache.commons.imaging.formats.jpeg.xmp.JpegXmpRewriter; import org.apache.commons.imaging.formats.tiff.TiffDirectory; import org.apache.commons.imaging.formats.tiff.TiffImageMetadata; +import org.apache.commons.imaging.formats.tiff.TiffImagingParameters; import org.apache.commons.imaging.formats.tiff.constants.MicrosoftTagConstants; import org.apache.commons.imaging.formats.tiff.constants.TiffTagConstants; import org.apache.commons.imaging.formats.tiff.write.TiffOutputDirectory; @@ -59,9 +56,9 @@ public class MicrosoftTagTest extends ExifBaseTest { root.add(MicrosoftTagConstants.EXIF_TAG_XPCOMMENT, COMMENT); root.add(MicrosoftTagConstants.EXIF_TAG_XPSUBJECT, SUBJECT); root.add(MicrosoftTagConstants.EXIF_TAG_XPTITLE, TITLE); - final Map<String, Object> params = new TreeMap<>(); - params.put(ImagingConstants.PARAM_KEY_EXIF, exifSet); - final byte[] bytes = Imaging.writeImageToBytes(image, ImageFormats.TIFF, params); + final TiffImagingParameters params = new TiffImagingParameters(); + params.setExif(exifSet); + final byte[] bytes = Imaging.writeImageToBytes(image, params); checkFields(bytes); } diff --git a/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/SpecificExifTagTest.java b/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/SpecificExifTagTest.java index ac85c19..aee2f84 100644 --- a/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/SpecificExifTagTest.java +++ b/src/test/java/org/apache/commons/imaging/formats/jpeg/exif/SpecificExifTagTest.java @@ -19,17 +19,15 @@ package org.apache.commons.imaging.formats.jpeg.exif; import java.io.File; import java.io.IOException; -import java.util.HashMap; import java.util.List; -import java.util.Map; import java.util.stream.Stream; import org.apache.commons.imaging.ImageReadException; import org.apache.commons.imaging.ImageWriteException; import org.apache.commons.imaging.Imaging; -import org.apache.commons.imaging.ImagingConstants; import org.apache.commons.imaging.common.ImageMetadata; import org.apache.commons.imaging.formats.jpeg.JpegImageMetadata; +import org.apache.commons.imaging.formats.jpeg.JpegImagingParameters; import org.apache.commons.imaging.formats.tiff.TiffField; import org.apache.commons.imaging.formats.tiff.TiffImageMetadata; import org.junit.jupiter.params.ParameterizedTest; @@ -57,9 +55,9 @@ public abstract class SpecificExifTagTest extends ExifBaseTest { ImageReadException, ImageWriteException { // Debug.debug("imageFile", imageFile.getAbsoluteFile()); - final Map<String, Object> params = new HashMap<>(); + final JpegImagingParameters params = new JpegImagingParameters(); final boolean ignoreImageData = isPhilHarveyTestImage(imageFile); - params.put(ImagingConstants.PARAM_KEY_READ_THUMBNAILS, Boolean.valueOf(!ignoreImageData)); + params.setReadThumbnails(!ignoreImageData); // note that metadata might be null if no metadata is found. final ImageMetadata metadata = Imaging.getMetadata(imageFile, params); diff --git a/src/test/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcAddTest.java b/src/test/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcAddTest.java index cd9d1bd..06476f2 100644 --- a/src/test/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcAddTest.java +++ b/src/test/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcAddTest.java @@ -25,15 +25,13 @@ import java.io.File; import java.io.FileOutputStream; import java.io.OutputStream; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; -import java.util.Map; import java.util.stream.Stream; -import org.apache.commons.imaging.ImagingConstants; import org.apache.commons.imaging.common.bytesource.ByteSource; import org.apache.commons.imaging.common.bytesource.ByteSourceFile; import org.apache.commons.imaging.formats.jpeg.JpegImageParser; +import org.apache.commons.imaging.formats.jpeg.JpegImagingParameters; import org.apache.commons.imaging.formats.jpeg.JpegPhotoshopMetadata; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; @@ -53,9 +51,9 @@ public class IptcAddTest extends IptcBaseTest { public void testAddIptcData(final File imageFile) throws Exception { final ByteSource byteSource = new ByteSourceFile(imageFile); - final Map<String, Object> params = new HashMap<>(); + final JpegImagingParameters params = new JpegImagingParameters(); final boolean ignoreImageData = isPhilHarveyTestImage(imageFile); - params.put(ImagingConstants.PARAM_KEY_READ_THUMBNAILS, Boolean.valueOf(!ignoreImageData)); + params.setReadThumbnails(!ignoreImageData); final JpegPhotoshopMetadata metadata = new JpegImageParser().getPhotoshopMetadata(byteSource, params); if (metadata == null) { diff --git a/src/test/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcDumpTest.java b/src/test/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcDumpTest.java index 1ee9e22..0d4656f 100644 --- a/src/test/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcDumpTest.java +++ b/src/test/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcDumpTest.java @@ -20,14 +20,12 @@ package org.apache.commons.imaging.formats.jpeg.iptc; import static org.junit.jupiter.api.Assertions.assertNotNull; import java.io.File; -import java.util.HashMap; import java.util.List; -import java.util.Map; import java.util.stream.Stream; import org.apache.commons.imaging.Imaging; -import org.apache.commons.imaging.ImagingConstants; import org.apache.commons.imaging.formats.jpeg.JpegImageMetadata; +import org.apache.commons.imaging.formats.jpeg.JpegImagingParameters; import org.apache.commons.imaging.formats.jpeg.JpegPhotoshopMetadata; import org.apache.commons.imaging.internal.Debug; import org.junit.jupiter.params.ParameterizedTest; @@ -42,9 +40,9 @@ public class IptcDumpTest extends IptcBaseTest { @ParameterizedTest @MethodSource("data") public void test(final File imageFile) throws Exception { - final Map<String, Object> params = new HashMap<>(); + final JpegImagingParameters params = new JpegImagingParameters(); final boolean ignoreImageData = isPhilHarveyTestImage(imageFile); - params.put(ImagingConstants.PARAM_KEY_READ_THUMBNAILS, Boolean.valueOf(!ignoreImageData)); + params.setReadThumbnails(!ignoreImageData); final JpegImageMetadata metadata = (JpegImageMetadata) Imaging.getMetadata(imageFile, params); assertNotNull(metadata); diff --git a/src/test/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcParserTest.java b/src/test/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcParserTest.java index afacb8f..f891190 100644 --- a/src/test/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcParserTest.java +++ b/src/test/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcParserTest.java @@ -24,7 +24,6 @@ import static org.junit.jupiter.api.Assertions.fail; import java.io.File; import java.io.IOException; import java.nio.charset.StandardCharsets; -import java.util.HashMap; import java.util.List; import org.apache.commons.imaging.ImageReadException; @@ -32,6 +31,7 @@ import org.apache.commons.imaging.common.GenericImageMetadata.GenericImageMetada import org.apache.commons.imaging.common.bytesource.ByteSourceFile; import org.apache.commons.imaging.formats.jpeg.JpegImageMetadata; import org.apache.commons.imaging.formats.jpeg.JpegImageParser; +import org.apache.commons.imaging.formats.jpeg.JpegImagingParameters; import org.apache.commons.imaging.formats.jpeg.JpegPhotoshopMetadata; import org.junit.jupiter.api.Test; @@ -65,7 +65,7 @@ public class IptcParserTest { .getFile(); final File imageFile = new File(location); final JpegImageMetadata metadata = (JpegImageMetadata) new JpegImageParser() - .getMetadata(new ByteSourceFile(imageFile), new HashMap<>()); + .getMetadata(new ByteSourceFile(imageFile), new JpegImagingParameters()); final JpegPhotoshopMetadata photoshopMetadata = metadata.getPhotoshop(); final PhotoshopApp13Data photoshopApp13Data = photoshopMetadata.photoshopApp13Data; final List<IptcBlock> blocks = photoshopApp13Data.getRawBlocks(); diff --git a/src/test/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcUpdateTest.java b/src/test/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcUpdateTest.java index 8adb66b..33abc91 100644 --- a/src/test/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcUpdateTest.java +++ b/src/test/java/org/apache/commons/imaging/formats/jpeg/iptc/IptcUpdateTest.java @@ -27,17 +27,15 @@ import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; -import java.util.Map; import java.util.stream.Stream; import org.apache.commons.imaging.ImageReadException; import org.apache.commons.imaging.ImageWriteException; -import org.apache.commons.imaging.ImagingConstants; import org.apache.commons.imaging.common.bytesource.ByteSource; import org.apache.commons.imaging.common.bytesource.ByteSourceFile; import org.apache.commons.imaging.formats.jpeg.JpegImageParser; +import org.apache.commons.imaging.formats.jpeg.JpegImagingParameters; import org.apache.commons.imaging.formats.jpeg.JpegPhotoshopMetadata; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; @@ -56,9 +54,9 @@ public class IptcUpdateTest extends IptcBaseTest { public void testRemove(final File imageFile) throws Exception { final ByteSource byteSource = new ByteSourceFile(imageFile); - final Map<String, Object> params = new HashMap<>(); + final JpegImagingParameters params = new JpegImagingParameters(); final boolean ignoreImageData = isPhilHarveyTestImage(imageFile); - params.put(ImagingConstants.PARAM_KEY_READ_THUMBNAILS, Boolean.valueOf(!ignoreImageData)); + params.setReadThumbnails(!ignoreImageData); final JpegPhotoshopMetadata metadata = new JpegImageParser().getPhotoshopMetadata( byteSource, params); @@ -88,9 +86,9 @@ public class IptcUpdateTest extends IptcBaseTest { public void testInsert(final File imageFile) throws Exception { final ByteSource byteSource = new ByteSourceFile(imageFile); - final Map<String, Object> params = new HashMap<>(); + final JpegImagingParameters params = new JpegImagingParameters(); final boolean ignoreImageData = isPhilHarveyTestImage(imageFile); - params.put(ImagingConstants.PARAM_KEY_READ_THUMBNAILS, Boolean.valueOf(!ignoreImageData)); + params.setReadThumbnails(!ignoreImageData); final JpegPhotoshopMetadata metadata = new JpegImageParser().getPhotoshopMetadata( byteSource, params); @@ -129,9 +127,9 @@ public class IptcUpdateTest extends IptcBaseTest { public void testUpdate(final File imageFile) throws Exception { final ByteSource byteSource = new ByteSourceFile(imageFile); - final Map<String, Object> params = new HashMap<>(); + final JpegImagingParameters params = new JpegImagingParameters(); final boolean ignoreImageData = isPhilHarveyTestImage(imageFile); - params.put(ImagingConstants.PARAM_KEY_READ_THUMBNAILS, Boolean.valueOf(!ignoreImageData)); + params.setReadThumbnails(!ignoreImageData); final JpegPhotoshopMetadata metadata = new JpegImageParser().getPhotoshopMetadata(byteSource, params); assertNotNull(metadata); @@ -171,9 +169,9 @@ public class IptcUpdateTest extends IptcBaseTest { public void testNoChangeUpdate(final File imageFile) throws Exception { final ByteSource byteSource = new ByteSourceFile(imageFile); - final Map<String, Object> params = new HashMap<>(); + final JpegImagingParameters params = new JpegImagingParameters(); final boolean ignoreImageData = isPhilHarveyTestImage(imageFile); - params.put(ImagingConstants.PARAM_KEY_READ_THUMBNAILS, Boolean.valueOf(!ignoreImageData)); + params.setReadThumbnails(!ignoreImageData); final JpegPhotoshopMetadata metadata = new JpegImageParser().getPhotoshopMetadata(byteSource, params); assertNotNull(metadata); diff --git a/src/test/java/org/apache/commons/imaging/formats/jpeg/segments/NegSizeSegmentTest.java b/src/test/java/org/apache/commons/imaging/formats/jpeg/segments/NegSizeSegmentTest.java index 16c7132..dfa26b2 100644 --- a/src/test/java/org/apache/commons/imaging/formats/jpeg/segments/NegSizeSegmentTest.java +++ b/src/test/java/org/apache/commons/imaging/formats/jpeg/segments/NegSizeSegmentTest.java @@ -22,12 +22,12 @@ import static org.junit.jupiter.api.Assertions.fail; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; -import java.util.HashMap; import org.apache.commons.imaging.ImageReadException; import org.apache.commons.imaging.common.bytesource.ByteSource; import org.apache.commons.imaging.common.bytesource.ByteSourceInputStream; import org.apache.commons.imaging.formats.jpeg.JpegImageParser; +import org.apache.commons.imaging.formats.jpeg.JpegImagingParameters; import org.apache.commons.imaging.formats.jpeg.JpegUtils; import org.junit.jupiter.api.Test; @@ -49,7 +49,7 @@ public class NegSizeSegmentTest { final InputStream inputStream = new ByteArrayInputStream(bytes); final ByteSource bs = new ByteSourceInputStream(inputStream, "NegSizeSegment"); final JpegImageParser p = new JpegImageParser(); - p.getBufferedImage(bs, new HashMap<String, Object>()); + p.getBufferedImage(bs, new JpegImagingParameters()); fail("Expecting exception: ImageReadException"); } catch (final ImageReadException e) { assertEquals("Invalid segment size", e.getMessage()); diff --git a/src/test/java/org/apache/commons/imaging/formats/jpeg/xmp/JpegXmpDumpTest.java b/src/test/java/org/apache/commons/imaging/formats/jpeg/xmp/JpegXmpDumpTest.java index e9f0d0e..001b7b1 100644 --- a/src/test/java/org/apache/commons/imaging/formats/jpeg/xmp/JpegXmpDumpTest.java +++ b/src/test/java/org/apache/commons/imaging/formats/jpeg/xmp/JpegXmpDumpTest.java @@ -20,13 +20,12 @@ package org.apache.commons.imaging.formats.jpeg.xmp; import static org.junit.jupiter.api.Assertions.assertNotNull; import java.io.File; -import java.util.HashMap; -import java.util.Map; import java.util.stream.Stream; import org.apache.commons.imaging.common.bytesource.ByteSource; import org.apache.commons.imaging.common.bytesource.ByteSourceFile; import org.apache.commons.imaging.formats.jpeg.JpegImageParser; +import org.apache.commons.imaging.formats.jpeg.JpegImagingParameters; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; @@ -40,7 +39,7 @@ public class JpegXmpDumpTest extends JpegXmpBaseTest { @MethodSource("data") public void test(final File imageFile) throws Exception { final ByteSource byteSource = new ByteSourceFile(imageFile); - final Map<String, Object> params = new HashMap<>(); + final JpegImagingParameters params = new JpegImagingParameters(); final String xmpXml = new JpegImageParser().getXmpXml(byteSource, params); // TODO assert more diff --git a/src/test/java/org/apache/commons/imaging/formats/jpeg/xmp/JpegXmpRewriteTest.java b/src/test/java/org/apache/commons/imaging/formats/jpeg/xmp/JpegXmpRewriteTest.java index b442920..7087e15 100644 --- a/src/test/java/org/apache/commons/imaging/formats/jpeg/xmp/JpegXmpRewriteTest.java +++ b/src/test/java/org/apache/commons/imaging/formats/jpeg/xmp/JpegXmpRewriteTest.java @@ -24,13 +24,12 @@ import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.OutputStream; -import java.util.HashMap; -import java.util.Map; import java.util.stream.Stream; import org.apache.commons.imaging.common.bytesource.ByteSource; import org.apache.commons.imaging.common.bytesource.ByteSourceFile; import org.apache.commons.imaging.formats.jpeg.JpegImageParser; +import org.apache.commons.imaging.formats.jpeg.JpegImagingParameters; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; @@ -45,7 +44,7 @@ public class JpegXmpRewriteTest extends JpegXmpBaseTest { @MethodSource("data") public void testRemoveInsertUpdate(final File imageFile) throws Exception { final ByteSource byteSource = new ByteSourceFile(imageFile); - final Map<String, Object> params = new HashMap<>(); + final JpegImagingParameters params = new JpegImagingParameters(); final String xmpXml = new JpegImageParser().getXmpXml(byteSource, params); assertNotNull(xmpXml); diff --git a/src/test/java/org/apache/commons/imaging/formats/pam/PamReadTest.java b/src/test/java/org/apache/commons/imaging/formats/pam/PamReadTest.java index a68bcb0..9519710 100644 --- a/src/test/java/org/apache/commons/imaging/formats/pam/PamReadTest.java +++ b/src/test/java/org/apache/commons/imaging/formats/pam/PamReadTest.java @@ -21,13 +21,12 @@ import static org.junit.jupiter.api.Assertions.assertNotNull; import java.awt.image.BufferedImage; import java.io.File; -import java.util.HashMap; import java.util.List; -import java.util.Map; import org.apache.commons.imaging.ImageInfo; import org.apache.commons.imaging.Imaging; import org.apache.commons.imaging.common.ImageMetadata; +import org.apache.commons.imaging.formats.pnm.PnmImagingParameters; import org.apache.commons.imaging.internal.Debug; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; @@ -46,7 +45,7 @@ public class PamReadTest extends PamBaseTest { final ImageMetadata metadata = Imaging.getMetadata(imageFile); Assertions.assertFalse(metadata instanceof File); // Dummy check to avoid unused warning (it may be null) - final Map<String, Object> params = new HashMap<>(); + final PnmImagingParameters params = new PnmImagingParameters(); final ImageInfo imageInfo = Imaging.getImageInfo(imageFile, params); assertNotNull(imageInfo); diff --git a/src/test/java/org/apache/commons/imaging/formats/pcx/PcxReadTest.java b/src/test/java/org/apache/commons/imaging/formats/pcx/PcxReadTest.java index a100460..4e22588 100644 --- a/src/test/java/org/apache/commons/imaging/formats/pcx/PcxReadTest.java +++ b/src/test/java/org/apache/commons/imaging/formats/pcx/PcxReadTest.java @@ -21,9 +21,7 @@ import static org.junit.jupiter.api.Assertions.assertNotNull; import java.awt.image.BufferedImage; import java.io.File; -import java.util.HashMap; import java.util.List; -import java.util.Map; import org.apache.commons.imaging.ImageInfo; import org.apache.commons.imaging.Imaging; @@ -46,11 +44,11 @@ public class PcxReadTest extends PcxBaseTest { final ImageMetadata metadata = Imaging.getMetadata(imageFile); Assertions.assertFalse(metadata instanceof File); // Dummy check to avoid unused warning (it may be null) - final Map<String, Object> params = new HashMap<>(); + final PcxImagingParameters params = new PcxImagingParameters(); final ImageInfo imageInfo = Imaging.getImageInfo(imageFile, params); assertNotNull(imageInfo); - final BufferedImage image = Imaging.getBufferedImage(imageFile); + final BufferedImage image = Imaging.getBufferedImage(imageFile, params); assertNotNull(image); } } diff --git a/src/test/java/org/apache/commons/imaging/formats/png/ConvertPngToGifTest.java b/src/test/java/org/apache/commons/imaging/formats/png/ConvertPngToGifTest.java index cd754b3..30e8a47 100644 --- a/src/test/java/org/apache/commons/imaging/formats/png/ConvertPngToGifTest.java +++ b/src/test/java/org/apache/commons/imaging/formats/png/ConvertPngToGifTest.java @@ -21,12 +21,10 @@ import static org.junit.jupiter.api.Assertions.assertNotNull; import java.awt.image.BufferedImage; import java.io.File; -import java.util.HashMap; import java.util.List; -import java.util.Map; -import org.apache.commons.imaging.ImageFormats; import org.apache.commons.imaging.Imaging; +import org.apache.commons.imaging.formats.gif.GifImagingParameters; import org.apache.commons.imaging.internal.Debug; import org.junit.jupiter.api.Test; @@ -41,21 +39,17 @@ public class ConvertPngToGifTest extends PngBaseTest { if (isInvalidPNGTestFile(imageFile)) { continue; - // Debug.debug("imageFile", imageFile); - // Debug.debug(); } - final Map<String, Object> params = new HashMap<>(); - // params.put(ImagingConstants.PARAM_KEY_VERBOSE, Boolean.TRUE); + final PngImagingParameters pngParams = new PngImagingParameters(); - final BufferedImage image = Imaging.getBufferedImage(imageFile, params); + final BufferedImage image = Imaging.getBufferedImage(imageFile, pngParams); assertNotNull(image); final File outFile = File.createTempFile(imageFile.getName() + ".", ".gif"); - // Debug.debug("outFile", outFile); - Imaging.writeImage(image, outFile, ImageFormats.GIF, - params); + final GifImagingParameters gifParams = new GifImagingParameters(); + Imaging.writeImage(image, outFile, gifParams); } Debug.debug("complete."); } diff --git a/src/test/java/org/apache/commons/imaging/formats/png/PngMultipleRoundtripTest.java b/src/test/java/org/apache/commons/imaging/formats/png/PngMultipleRoundtripTest.java index 4c0e930..d224fab 100644 --- a/src/test/java/org/apache/commons/imaging/formats/png/PngMultipleRoundtripTest.java +++ b/src/test/java/org/apache/commons/imaging/formats/png/PngMultipleRoundtripTest.java @@ -22,10 +22,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import java.awt.image.BufferedImage; import java.io.File; -import java.util.HashMap; -import java.util.Map; -import org.apache.commons.imaging.ImageFormats; import org.apache.commons.imaging.Imaging; import org.apache.commons.imaging.internal.Debug; import org.apache.commons.io.FilenameUtils; @@ -55,20 +52,17 @@ public class PngMultipleRoundtripTest extends PngBaseTest { File lastFile = imageFile; for (int j = 0; j < 10; j++) { - final Map<String, Object> readParams = new HashMap<>(); + final PngImagingParameters readParams = new PngImagingParameters(); // readParams.put(ImagingConstants.BUFFERED_IMAGE_FACTORY, // new RgbBufferedImageFactory()); - final BufferedImage image = Imaging.getBufferedImage(lastFile, - readParams); + final BufferedImage image = Imaging.getBufferedImage(lastFile, readParams); assertNotNull(image); - final File tempFile = File.createTempFile(imageFile.getName() + "." + j - + ".", ".png"); + final File tempFile = File.createTempFile(imageFile.getName() + "." + j + ".", ".png"); Debug.debug("tempFile", tempFile); - final Map<String, Object> writeParams = new HashMap<>(); - Imaging.writeImage(image, tempFile, - ImageFormats.PNG, writeParams); + final PngImagingParameters writeParams = new PngImagingParameters(); + Imaging.writeImage(image, tempFile, writeParams); lastFile = tempFile; } diff --git a/src/test/java/org/apache/commons/imaging/formats/png/PngTextTest.java b/src/test/java/org/apache/commons/imaging/formats/png/PngTextTest.java index bc4957d..b590dad 100644 --- a/src/test/java/org/apache/commons/imaging/formats/png/PngTextTest.java +++ b/src/test/java/org/apache/commons/imaging/formats/png/PngTextTest.java @@ -25,11 +25,8 @@ import java.awt.Color; import java.awt.image.BufferedImage; import java.io.File; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; -import java.util.Map; -import org.apache.commons.imaging.ImageFormats; import org.apache.commons.imaging.Imaging; import org.apache.commons.io.FileUtils; import org.junit.jupiter.api.Test; @@ -44,7 +41,7 @@ public class PngTextTest extends PngBaseTest { BufferedImage.TYPE_INT_ARGB); srcImage.setRGB(0, 0, Color.red.getRGB()); - final Map<String, Object> writeParams = new HashMap<>(); + final PngImagingParameters writeParams = new PngImagingParameters(); final List<PngText> writeTexts = new ArrayList<>(); { @@ -66,10 +63,9 @@ public class PngTextTest extends PngBaseTest { translatedKeyword)); } - writeParams.put(PngConstants.PARAM_KEY_PNG_TEXT_CHUNKS, writeTexts); + writeParams.setTextChunks(writeTexts); - final byte[] bytes = Imaging.writeImageToBytes(srcImage, - ImageFormats.PNG, writeParams); + final byte[] bytes = Imaging.writeImageToBytes(srcImage, writeParams); final File tempFile = File.createTempFile("temp", ".png"); FileUtils.writeByteArrayToFile(tempFile, bytes); diff --git a/src/test/java/org/apache/commons/imaging/formats/png/PngWithInvalidPngChunkSizeTest.java b/src/test/java/org/apache/commons/imaging/formats/png/PngWithInvalidPngChunkSizeTest.java index f59c478..c631ae3 100644 --- a/src/test/java/org/apache/commons/imaging/formats/png/PngWithInvalidPngChunkSizeTest.java +++ b/src/test/java/org/apache/commons/imaging/formats/png/PngWithInvalidPngChunkSizeTest.java @@ -18,12 +18,9 @@ package org.apache.commons.imaging.formats.png; import java.io.File; -import java.util.HashMap; -import java.util.Map; import org.apache.commons.imaging.ImageReadException; import org.apache.commons.imaging.Imaging; -import org.apache.commons.imaging.ImagingConstants; import org.apache.commons.imaging.examples.ImageReadExample.ManagedImageBufferedImageFactory; import org.apache.commons.imaging.formats.jpeg.JpegWithInvalidDhtSegmentTest; import org.junit.jupiter.api.Assertions; @@ -42,8 +39,8 @@ public class PngWithInvalidPngChunkSizeTest { public void testPngWithInvalidPngChunkSize() { final File imageFile = new File( JpegWithInvalidDhtSegmentTest.class.getResource("/IMAGING-211/testfile_2.png").getFile()); - final Map<String, Object> params = new HashMap<>(); - params.put(ImagingConstants.BUFFERED_IMAGE_FACTORY, new ManagedImageBufferedImageFactory()); + final PngImagingParameters params = new PngImagingParameters(); + params.setBufferedImageFactory(new ManagedImageBufferedImageFactory()); Assertions.assertThrows(ImageReadException.class, () -> Imaging.getBufferedImage(imageFile, params)); } @@ -55,8 +52,8 @@ public class PngWithInvalidPngChunkSizeTest { public void testPngWithInvalidNegativePngChunkSize() { final File imageFile = new File( JpegWithInvalidDhtSegmentTest.class.getResource("/IMAGING-210/testfile.png").getFile()); - final Map<String, Object> params = new HashMap<>(); - params.put(ImagingConstants.BUFFERED_IMAGE_FACTORY, new ManagedImageBufferedImageFactory()); + final PngImagingParameters params = new PngImagingParameters(); + params.setBufferedImageFactory(new ManagedImageBufferedImageFactory()); Assertions.assertThrows(ImageReadException.class, () -> Imaging.getBufferedImage(imageFile, params)); } } diff --git a/src/test/java/org/apache/commons/imaging/formats/png/PngWriteForceTrueColorText.java b/src/test/java/org/apache/commons/imaging/formats/png/PngWriteForceTrueColorText.java index 41c9d35..609e1be 100644 --- a/src/test/java/org/apache/commons/imaging/formats/png/PngWriteForceTrueColorText.java +++ b/src/test/java/org/apache/commons/imaging/formats/png/PngWriteForceTrueColorText.java @@ -21,11 +21,8 @@ import static org.junit.jupiter.api.Assertions.assertNotNull; import java.awt.image.BufferedImage; import java.io.File; -import java.util.HashMap; import java.util.List; -import java.util.Map; -import org.apache.commons.imaging.ImageFormats; import org.apache.commons.imaging.Imaging; import org.apache.commons.imaging.internal.Debug; import org.junit.jupiter.api.Test; @@ -49,21 +46,17 @@ public class PngWriteForceTrueColorText extends PngBaseTest { // params.put(ImagingConstants.PARAM_KEY_VERBOSE, // Boolean.TRUE); - final BufferedImage image = Imaging.getBufferedImage(imageFile, - new HashMap<String, Object>()); + final BufferedImage image = Imaging.getBufferedImage(imageFile, new PngImagingParameters()); assertNotNull(image); final File outFile = File.createTempFile(imageFile.getName() + ".", ".gif"); // Debug.debug("outFile", outFile); - final Map<String, Object> params = new HashMap<>(); - params.put(PngConstants.PARAM_KEY_PNG_FORCE_TRUE_COLOR, - Boolean.TRUE); - Imaging.writeImage(image, outFile, - ImageFormats.PNG, params); + final PngImagingParameters params = new PngImagingParameters(); + params.setForceTrueColor(Boolean.TRUE); + Imaging.writeImage(image, outFile, params); - final BufferedImage image2 = Imaging.getBufferedImage(outFile, - new HashMap<String, Object>()); + final BufferedImage image2 = Imaging.getBufferedImage(outFile, new PngImagingParameters()); assertNotNull(image2); } catch (final Exception e) { Debug.debug("imageFile", imageFile); diff --git a/src/test/java/org/apache/commons/imaging/formats/png/PngWriteReadTest.java b/src/test/java/org/apache/commons/imaging/formats/png/PngWriteReadTest.java index e045a6c..51d1695 100644 --- a/src/test/java/org/apache/commons/imaging/formats/png/PngWriteReadTest.java +++ b/src/test/java/org/apache/commons/imaging/formats/png/PngWriteReadTest.java @@ -25,13 +25,10 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; -import java.util.HashMap; import java.util.LinkedList; import java.util.List; -import java.util.Map; import java.util.Random; -import org.apache.commons.imaging.ImageFormats; import org.apache.commons.imaging.ImageReadException; import org.apache.commons.imaging.ImageWriteException; import org.apache.commons.imaging.Imaging; @@ -42,10 +39,6 @@ import org.apache.commons.io.FileUtils; import org.junit.jupiter.api.Test; public class PngWriteReadTest extends ImagingTest { - // public PngWriteReadTest(String name) - // { - // super(name); - // } private int[][] getSimpleRawData(final int width, final int height, final int value) { final int[][] result = new int[height][width]; @@ -113,21 +106,17 @@ public class PngWriteReadTest extends ImagingTest { public void testTransparency() throws Exception { // Test for https://issues.apache.org/jira/browse/SANSELAN-52 final int[][] smallAscendingPixels = getAscendingRawData(256, 256); - final byte[] pngBytes = Imaging.writeImageToBytes( - imageDataToBufferedImage(smallAscendingPixels), - ImageFormats.PNG, null); + final byte[] pngBytes = Imaging.writeImageToBytes(imageDataToBufferedImage(smallAscendingPixels), new PngImagingParameters()); assertTrue(Imaging.getImageInfo(pngBytes).isTransparent()); } @Test public void testPhysicalScaleMeters() throws Exception { - final Map<String, Object> optionalParams = new HashMap<>(); - optionalParams.put(PngConstants.PARAM_KEY_PHYSICAL_SCALE, PhysicalScale.createFromMeters(0.01, 0.02)); + final PngImagingParameters optionalParams = new PngImagingParameters(); + optionalParams.setPhysicalScale(PhysicalScale.createFromMeters(0.01, 0.02)); final int[][] smallAscendingPixels = getAscendingRawData(256, 256); - final byte[] pngBytes = Imaging.writeImageToBytes( - imageDataToBufferedImage(smallAscendingPixels), - ImageFormats.PNG, optionalParams); + final byte[] pngBytes = Imaging.writeImageToBytes(imageDataToBufferedImage(smallAscendingPixels), optionalParams); final PngImageInfo imageInfo = (PngImageInfo) Imaging.getImageInfo(pngBytes); final PhysicalScale physicalScale = imageInfo.getPhysicalScale(); assertTrue(physicalScale.isInMeters()); @@ -137,13 +126,11 @@ public class PngWriteReadTest extends ImagingTest { @Test public void testPhysicalScaleRadians() throws Exception { - final Map<String, Object> optionalParams = new HashMap<>(); - optionalParams.put(PngConstants.PARAM_KEY_PHYSICAL_SCALE, PhysicalScale.createFromRadians(0.01, 0.02)); + final PngImagingParameters optionalParams = new PngImagingParameters(); + optionalParams.setPhysicalScale(PhysicalScale.createFromRadians(0.01, 0.02)); final int[][] smallAscendingPixels = getAscendingRawData(256, 256); - final byte[] pngBytes = Imaging.writeImageToBytes( - imageDataToBufferedImage(smallAscendingPixels), - ImageFormats.PNG, optionalParams); + final byte[] pngBytes = Imaging.writeImageToBytes(imageDataToBufferedImage(smallAscendingPixels), optionalParams); final PngImageInfo imageInfo = (PngImageInfo) Imaging.getImageInfo(pngBytes); final PhysicalScale physicalScale = imageInfo.getPhysicalScale(); assertTrue(physicalScale.isInRadians()); @@ -181,14 +168,13 @@ public class PngWriteReadTest extends ImagingTest { ImageReadException, ImageWriteException { final BufferedImage srcImage = imageDataToBufferedImage(rawData); - final Map<String, Object> writeParams = new HashMap<>(); + final PngImagingParameters writeParams = new PngImagingParameters(); // writeParams.put(ImagingConstants.PARAM_KEY_FORMAT, // ImageFormat.IMAGE_FORMAT_PNG); // writeParams.put(PngConstants.PARAM_KEY_PNG_FORCE_TRUE_COLOR, // Boolean.TRUE); - final byte[] bytes = Imaging.writeImageToBytes(srcImage, - ImageFormats.PNG, writeParams); + final byte[] bytes = Imaging.writeImageToBytes(srcImage, writeParams); // Debug.debug("bytes", bytes); @@ -212,12 +198,10 @@ public class PngWriteReadTest extends ImagingTest { final List<PngText.Text> textChunks = new LinkedList<>(); textChunks.add(new PngText.Text("a", "b")); textChunks.add(new PngText.Text("c", "d")); - final Map<String, Object> writeParams = new HashMap<>(); - writeParams.put(PngConstants.PARAM_KEY_PNG_TEXT_CHUNKS, - textChunks); + final PngImagingParameters writeParams = new PngImagingParameters(); + writeParams.setTextChunks(textChunks); - final byte[] bytes = Imaging.writeImageToBytes(srcImage, - ImageFormats.PNG, writeParams); + final byte[] bytes = Imaging.writeImageToBytes(srcImage, writeParams); // Debug.debug("bytes", bytes); diff --git a/src/test/java/org/apache/commons/imaging/formats/pnm/PnmImageParserTest.java b/src/test/java/org/apache/commons/imaging/formats/pnm/PnmImageParserTest.java index 270fa5f..3f73f19 100644 --- a/src/test/java/org/apache/commons/imaging/formats/pnm/PnmImageParserTest.java +++ b/src/test/java/org/apache/commons/imaging/formats/pnm/PnmImageParserTest.java @@ -24,11 +24,7 @@ import java.awt.image.DataBufferInt; import java.io.IOException; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; -import java.util.Collections; -import java.util.HashMap; -import java.util.Map; -import org.apache.commons.imaging.ImageFormats; import org.apache.commons.imaging.ImageInfo; import org.apache.commons.imaging.ImageReadException; import org.apache.commons.imaging.ImageWriteException; @@ -43,7 +39,7 @@ public class PnmImageParserTest { @Test public void testGetImageInfo_happyCase() throws ImageReadException, IOException { final byte[] bytes = "P1\n3 2\n0 1 0\n1 0 1\n".getBytes(US_ASCII); - final Map<String, Object> params = Collections.emptyMap(); + final PnmImagingParameters params = new PnmImagingParameters(); final PnmImageParser underTest = new PnmImageParser(); final ImageInfo results = underTest.getImageInfo(bytes, params); assertEquals(results.getBitsPerPixel(), 1); @@ -56,10 +52,10 @@ public class PnmImageParserTest { public void testWriteImageRaw_happyCase() throws ImageWriteException, ImageReadException, IOException { final BufferedImage srcImage = new BufferedImage(10, 10, BufferedImage.TYPE_INT_ARGB); - final Map<String, Object> params = new HashMap<>(); - params.put(PnmImageParser.PARAM_KEY_PNM_RAWBITS, PnmImageParser.PARAM_VALUE_PNM_RAWBITS_YES); + final PnmImagingParameters params = new PnmImagingParameters(); + params.setRawBits(Boolean.TRUE); - final byte[] dstBytes = Imaging.writeImageToBytes(srcImage, ImageFormats.PNM, params); + final byte[] dstBytes = Imaging.writeImageToBytes(srcImage, params); final BufferedImage dstImage = Imaging.getBufferedImage(dstBytes); assertEquals(srcImage.getWidth(), dstImage.getWidth()); @@ -83,7 +79,7 @@ public class PnmImageParserTest { @Test public void testGetImageInfo_invalidWidth() { final byte[] bytes = "P1\na 2\n0 0 0 0 0 0 0 0 0 0 0\n1 1 1 1 1 1 1 1 1 1 1\n".getBytes(US_ASCII); - final Map<String, Object> params = Collections.emptyMap(); + final PnmImagingParameters params = new PnmImagingParameters(); final PnmImageParser underTest = new PnmImageParser(); Assertions.assertThrows(ImageReadException.class, () -> underTest.getImageInfo(bytes, params)); } @@ -91,7 +87,7 @@ public class PnmImageParserTest { @Test public void testGetImageInfo_invalidHeight() { final byte[] bytes = "P1\n2 a\n0 0\n0 0\n0 0\n0 0\n0 0\n0 1\n1 1\n1 1\n1 1\n1 1\n1 1\n".getBytes(US_ASCII); - final Map<String, Object> params = Collections.emptyMap(); + final PnmImagingParameters params = new PnmImagingParameters(); final PnmImageParser underTest = new PnmImageParser(); Assertions.assertThrows(ImageReadException.class, () -> underTest.getImageInfo(bytes, params)); } @@ -99,7 +95,7 @@ public class PnmImageParserTest { @Test public void testGetImageInfo_missingWidthValue() { final byte[] bytes = "P7\nWIDTH \n".getBytes(US_ASCII); - final Map<String, Object> params = Collections.emptyMap(); + final PnmImagingParameters params = new PnmImagingParameters(); final PnmImageParser underTest = new PnmImageParser(); Assertions.assertThrows(ImageReadException.class, () -> underTest.getImageInfo(bytes, params)); } diff --git a/src/test/java/org/apache/commons/imaging/formats/psd/PsdReadTest.java b/src/test/java/org/apache/commons/imaging/formats/psd/PsdReadTest.java index 37043c4..362ae87 100644 --- a/src/test/java/org/apache/commons/imaging/formats/psd/PsdReadTest.java +++ b/src/test/java/org/apache/commons/imaging/formats/psd/PsdReadTest.java @@ -20,9 +20,7 @@ import static org.junit.jupiter.api.Assertions.assertNotNull; import java.awt.image.BufferedImage; import java.io.File; -import java.util.HashMap; import java.util.List; -import java.util.Map; import org.apache.commons.imaging.ImageInfo; import org.apache.commons.imaging.Imaging; @@ -45,7 +43,7 @@ public class PsdReadTest extends PsdBaseTest { final ImageMetadata metadata = Imaging.getMetadata(imageFile); Assertions.assertFalse(metadata instanceof File); // Dummy check to avoid unused warning (it may be null) - final Map<String, Object> params = new HashMap<>(); + final PsdImagingParameters params = new PsdImagingParameters(); final ImageInfo imageInfo = Imaging.getImageInfo(imageFile, params); assertNotNull(imageInfo); diff --git a/src/test/java/org/apache/commons/imaging/formats/rgbe/RgbeReadTest.java b/src/test/java/org/apache/commons/imaging/formats/rgbe/RgbeReadTest.java index cbe05b7..7e4cfdf 100644 --- a/src/test/java/org/apache/commons/imaging/formats/rgbe/RgbeReadTest.java +++ b/src/test/java/org/apache/commons/imaging/formats/rgbe/RgbeReadTest.java @@ -21,9 +21,7 @@ import static org.junit.jupiter.api.Assertions.assertNotNull; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; -import java.util.Collections; import java.util.List; -import java.util.Map; import org.apache.commons.imaging.ImageInfo; import org.apache.commons.imaging.ImageReadException; @@ -67,7 +65,7 @@ public class RgbeReadTest extends RgbeBaseTest { RgbeReadTest.class.getResource("/IMAGING-219/timeout-9713502c9c371f1654b493650c16ab17c0444369") .getFile()); final ByteSourceFile byteSourceFile = new ByteSourceFile(inputFile); - final Map<String, Object> params = Collections.emptyMap(); + final RgbeImagingParameters params = new RgbeImagingParameters(); Assertions.assertThrows(ImageReadException.class, () -> new RgbeImageParser().getBufferedImage(byteSourceFile, params)); } } diff --git a/src/test/java/org/apache/commons/imaging/formats/tiff/TiffAlphaRoundTripTest.java b/src/test/java/org/apache/commons/imaging/formats/tiff/TiffAlphaRoundTripTest.java index dfd1170..a51ed31 100644 --- a/src/test/java/org/apache/commons/imaging/formats/tiff/TiffAlphaRoundTripTest.java +++ b/src/test/java/org/apache/commons/imaging/formats/tiff/TiffAlphaRoundTripTest.java @@ -16,14 +16,8 @@ */ package org.apache.commons.imaging.formats.tiff; -import org.apache.commons.imaging.ImageFormats; -import org.apache.commons.imaging.Imaging; -import org.apache.commons.imaging.formats.tiff.constants.TiffTagConstants; -import org.apache.commons.imaging.formats.tiff.write.TiffImageWriterLossy; -import org.apache.commons.imaging.formats.tiff.write.TiffOutputDirectory; -import org.apache.commons.imaging.formats.tiff.write.TiffOutputSet; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.fail; import java.awt.AlphaComposite; import java.awt.Color; @@ -34,10 +28,14 @@ import java.io.File; import java.io.FileOutputStream; import java.nio.ByteOrder; import java.nio.file.Path; -import java.util.HashMap; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.fail; +import org.apache.commons.imaging.Imaging; +import org.apache.commons.imaging.formats.tiff.constants.TiffTagConstants; +import org.apache.commons.imaging.formats.tiff.write.TiffImageWriterLossy; +import org.apache.commons.imaging.formats.tiff.write.TiffOutputDirectory; +import org.apache.commons.imaging.formats.tiff.write.TiffOutputSet; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; /** * Performs a round-trip that writes an image containing Alpha and then reads it @@ -82,9 +80,7 @@ public class TiffAlphaRoundTripTest { // correctness of a round-trip test. final File file = new File(tempDir.toFile(), "TiffAlphaRoundTripTest.tif"); file.delete(); - final HashMap<String, Object> params = new HashMap<>(); - - Imaging.writeImage(image0, file, ImageFormats.TIFF, params); + Imaging.writeImage(image0, file, new TiffImagingParameters()); final BufferedImage image1 = Imaging.getBufferedImage(file); // Step 2: create a composite image overlaying a white background diff --git a/src/test/java/org/apache/commons/imaging/formats/tiff/TiffCcittTest.java b/src/test/java/org/apache/commons/imaging/formats/tiff/TiffCcittTest.java index 729fb12..567b4d5 100644 --- a/src/test/java/org/apache/commons/imaging/formats/tiff/TiffCcittTest.java +++ b/src/test/java/org/apache/commons/imaging/formats/tiff/TiffCcittTest.java @@ -22,13 +22,10 @@ import static org.junit.jupiter.api.Assertions.fail; import java.awt.image.BufferedImage; import java.io.IOException; -import java.util.HashMap; -import org.apache.commons.imaging.ImageFormats; import org.apache.commons.imaging.ImageReadException; import org.apache.commons.imaging.ImageWriteException; import org.apache.commons.imaging.Imaging; -import org.apache.commons.imaging.ImagingConstants; import org.apache.commons.imaging.common.itu_t4.T4AndT6Compression; import org.apache.commons.imaging.formats.tiff.constants.TiffConstants; import org.apache.commons.imaging.internal.Debug; @@ -160,11 +157,9 @@ public class TiffCcittTest extends TiffBaseTest { } try { - final HashMap<String, Object> params = new HashMap<>(); - params.put(ImagingConstants.PARAM_KEY_COMPRESSION, - TiffConstants.TIFF_COMPRESSION_CCITT_1D); - final byte[] compressed = Imaging.writeImageToBytes(image, - ImageFormats.TIFF, params); + final TiffImagingParameters params = new TiffImagingParameters(); + params.setCompression(TiffConstants.TIFF_COMPRESSION_CCITT_1D); + final byte[] compressed = Imaging.writeImageToBytes(image, params); final BufferedImage result = Imaging.getBufferedImage(compressed); compareImages(image, result); } catch (final ImageWriteException | ImageReadException | IOException ex) { @@ -173,12 +168,10 @@ public class TiffCcittTest extends TiffBaseTest { } try { - final HashMap<String, Object> params = new HashMap<>(); - params.put(ImagingConstants.PARAM_KEY_COMPRESSION, - TiffConstants.TIFF_COMPRESSION_CCITT_GROUP_3); - params.put(TiffConstants.PARAM_KEY_T4_OPTIONS, 0); - final byte[] compressed = Imaging.writeImageToBytes(image, - ImageFormats.TIFF, params); + final TiffImagingParameters params = new TiffImagingParameters(); + params.setCompression(TiffConstants.TIFF_COMPRESSION_CCITT_GROUP_3); + params.setT4Options(0); + final byte[] compressed = Imaging.writeImageToBytes(image, params); final BufferedImage result = Imaging.getBufferedImage(compressed); compareImages(image, result); } catch (final ImageWriteException | ImageReadException | IOException ex) { @@ -187,12 +180,10 @@ public class TiffCcittTest extends TiffBaseTest { } try { - final HashMap<String, Object> params = new HashMap<>(); - params.put(ImagingConstants.PARAM_KEY_COMPRESSION, - TiffConstants.TIFF_COMPRESSION_CCITT_GROUP_3); - params.put(TiffConstants.PARAM_KEY_T4_OPTIONS, 4); - final byte[] compressed = Imaging.writeImageToBytes(image, - ImageFormats.TIFF, params); + final TiffImagingParameters params = new TiffImagingParameters(); + params.setCompression(TiffConstants.TIFF_COMPRESSION_CCITT_GROUP_3); + params.setT4Options(4); + final byte[] compressed = Imaging.writeImageToBytes(image, params); final BufferedImage result = Imaging.getBufferedImage(compressed); compareImages(image, result); } catch (final ImageWriteException | ImageReadException | IOException ex) { @@ -201,12 +192,10 @@ public class TiffCcittTest extends TiffBaseTest { } try { - final HashMap<String, Object> params = new HashMap<>(); - params.put(ImagingConstants.PARAM_KEY_COMPRESSION, - TiffConstants.TIFF_COMPRESSION_CCITT_GROUP_3); - params.put(TiffConstants.PARAM_KEY_T4_OPTIONS, 1); - final byte[] compressed = Imaging.writeImageToBytes(image, - ImageFormats.TIFF, params); + final TiffImagingParameters params = new TiffImagingParameters(); + params.setCompression(TiffConstants.TIFF_COMPRESSION_CCITT_GROUP_3); + params.setT4Options(1); + final byte[] compressed = Imaging.writeImageToBytes(image, params); final BufferedImage result = Imaging.getBufferedImage(compressed); compareImages(image, result); } catch (final ImageWriteException | ImageReadException | IOException ex) { @@ -215,12 +204,10 @@ public class TiffCcittTest extends TiffBaseTest { } try { - final HashMap<String, Object> params = new HashMap<>(); - params.put(ImagingConstants.PARAM_KEY_COMPRESSION, - TiffConstants.TIFF_COMPRESSION_CCITT_GROUP_3); - params.put(TiffConstants.PARAM_KEY_T4_OPTIONS, 5); - final byte[] compressed = Imaging.writeImageToBytes(image, - ImageFormats.TIFF, params); + final TiffImagingParameters params = new TiffImagingParameters(); + params.setCompression(TiffConstants.TIFF_COMPRESSION_CCITT_GROUP_3); + params.setT4Options(5); + final byte[] compressed = Imaging.writeImageToBytes(image, params); final BufferedImage result = Imaging.getBufferedImage(compressed); compareImages(image, result); } catch (final ImageWriteException | ImageReadException | IOException ex) { @@ -229,11 +216,9 @@ public class TiffCcittTest extends TiffBaseTest { } try { - final HashMap<String, Object> params = new HashMap<>(); - params.put(ImagingConstants.PARAM_KEY_COMPRESSION, - TiffConstants.TIFF_COMPRESSION_CCITT_GROUP_4); - final byte[] compressed = Imaging.writeImageToBytes(image, - ImageFormats.TIFF, params); + final TiffImagingParameters params = new TiffImagingParameters(); + params.setCompression(TiffConstants.TIFF_COMPRESSION_CCITT_GROUP_4); + final byte[] compressed = Imaging.writeImageToBytes(image, params); final BufferedImage result = Imaging.getBufferedImage(compressed); compareImages(image, result); } catch (final ImageWriteException | ImageReadException | IOException ex) { diff --git a/src/test/java/org/apache/commons/imaging/formats/tiff/TiffFloatingPointReadTest.java b/src/test/java/org/apache/commons/imaging/formats/tiff/TiffFloatingPointReadTest.java index b9aebb6..2fbf933 100644 --- a/src/test/java/org/apache/commons/imaging/formats/tiff/TiffFloatingPointReadTest.java +++ b/src/test/java/org/apache/commons/imaging/formats/tiff/TiffFloatingPointReadTest.java @@ -26,15 +26,12 @@ import java.io.File; import java.io.IOException; import java.nio.ByteOrder; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; -import java.util.Map; import org.apache.commons.imaging.FormatCompliance; import org.apache.commons.imaging.ImageReadException; import org.apache.commons.imaging.ImagingTestConstants; import org.apache.commons.imaging.common.bytesource.ByteSourceFile; -import org.apache.commons.imaging.formats.tiff.constants.TiffConstants; import org.apache.commons.imaging.formats.tiff.photometricinterpreters.floatingpoint.PaletteEntry; import org.apache.commons.imaging.formats.tiff.photometricinterpreters.floatingpoint.PaletteEntryForRange; import org.apache.commons.imaging.formats.tiff.photometricinterpreters.floatingpoint.PaletteEntryForValue; @@ -92,8 +89,8 @@ public class TiffFloatingPointReadTest { pList.add(new PaletteEntryForValue(fNot, Color.red)); pList.add(new PaletteEntryForRange(f0, f1, Color.black, Color.white)); final PhotometricInterpreterFloat pInterp = new PhotometricInterpreterFloat(pList); - final HashMap<String, Object> params = new HashMap<>(); - params.put(TiffConstants.PARAM_KEY_CUSTOM_PHOTOMETRIC_INTERPRETER, pInterp); + final TiffImagingParameters params = new TiffImagingParameters(); + params.setCustomPhotometricInterpreter(pInterp); final BufferedImage bImage = directory.getTiffImage(byteOrder, params); if (bImage == null) { return null; @@ -112,7 +109,7 @@ public class TiffFloatingPointReadTest { * @throws IOException in the event of an I/O error */ private TiffRasterData readRasterFromTIFF( - final File target, final Map<String, Object> params) + final File target, final TiffImagingParameters params) throws ImageReadException, IOException { final ByteSourceFile byteSource = new ByteSourceFile(target); final TiffReader tiffReader = new TiffReader(true); @@ -126,7 +123,6 @@ public class TiffFloatingPointReadTest { @Test public void test() { - final Map<String, Object> params = new HashMap<>(); // These TIFF sample data includes files that contain known // floating-point values in various formats. We know the range // of values from inspection using separate utilies. This @@ -155,7 +151,7 @@ public class TiffFloatingPointReadTest { // that the source file is organized using strips of 2 rows each. // The source file is of dimensions 451x337. // The dimensions of the sub-image are arbitrary - TiffRasterData fullRaster = readRasterFromTIFF(target, null); + TiffRasterData fullRaster = readRasterFromTIFF(target, new TiffImagingParameters()); int height = fullRaster.getHeight(); int width = fullRaster.getWidth(); // checks based on the 2-rows per strip model @@ -196,7 +192,7 @@ public class TiffFloatingPointReadTest { assertTrue(testCondition, "Min,Max values not in range -2 to 62: " + minVal + ", " + maxVal); assertTrue(minVal <= maxVal, "Min Value not <= maxVal: " + minVal + ", " + maxVal); - fullRaster = readRasterFromTIFF(target, null); + fullRaster = readRasterFromTIFF(target, new TiffImagingParameters()); // The tile size for this file is 128-by-128. The following tests // read subsections starting right before the tile transition and right after it. height = fullRaster.getHeight(); @@ -226,11 +222,11 @@ public class TiffFloatingPointReadTest { private void checkSubImage(final File target, final TiffRasterData fullRaster, final int x0, final int y0, final int width, final int height){ try{ - final Map<String, Object> params = new HashMap<>(); - params.put(TiffConstants.PARAM_KEY_SUBIMAGE_X, x0); - params.put(TiffConstants.PARAM_KEY_SUBIMAGE_Y, y0); - params.put(TiffConstants.PARAM_KEY_SUBIMAGE_WIDTH, width); - params.put(TiffConstants.PARAM_KEY_SUBIMAGE_HEIGHT, height); + final TiffImagingParameters params = new TiffImagingParameters(); + params.setSubImageX(x0); + params.setSubImageY(y0); + params.setSubImageWidth(width); + params.setSubImageHeight(height); final TiffRasterData partRaster = readRasterFromTIFF(target, params); assertEquals(width, partRaster.getWidth(), "Invalid width in partial for " + target.getName()); assertEquals(height, partRaster.getHeight(), "Invalid height in partial for " + target.getName()); diff --git a/src/test/java/org/apache/commons/imaging/formats/tiff/TiffFloatingPointRoundTripTest.java b/src/test/java/org/apache/commons/imaging/formats/tiff/TiffFloatingPointRoundTripTest.java index 87c4333..681d7de 100644 --- a/src/test/java/org/apache/commons/imaging/formats/tiff/TiffFloatingPointRoundTripTest.java +++ b/src/test/java/org/apache/commons/imaging/formats/tiff/TiffFloatingPointRoundTripTest.java @@ -27,14 +27,12 @@ import java.io.FileOutputStream; import java.io.IOException; import java.nio.ByteOrder; import java.nio.file.Path; -import java.util.HashMap; import org.apache.commons.imaging.FormatCompliance; import org.apache.commons.imaging.ImageReadException; import org.apache.commons.imaging.ImageWriteException; import org.apache.commons.imaging.common.ImageBuilder; import org.apache.commons.imaging.common.bytesource.ByteSourceFile; -import org.apache.commons.imaging.formats.tiff.constants.TiffConstants; import org.apache.commons.imaging.formats.tiff.constants.TiffTagConstants; import org.apache.commons.imaging.formats.tiff.photometricinterpreters.floatingpoint.PhotometricInterpreterFloat; import org.apache.commons.imaging.formats.tiff.write.TiffImageWriterLossy; @@ -134,8 +132,8 @@ public class TiffFloatingPointRoundTripTest extends TiffBaseTest { FormatCompliance.getDefault()); final TiffDirectory directory = contents.directories.get(0); final PhotometricInterpreterFloat pi = getPhotometricInterpreter(); - final HashMap<String, Object> params = new HashMap<>(); - params.put(TiffConstants.PARAM_KEY_CUSTOM_PHOTOMETRIC_INTERPRETER, pi); + final TiffImagingParameters params = new TiffImagingParameters(); + params.setCustomPhotometricInterpreter(pi); final ByteOrder byteOrder = tiffReader.getByteOrder(); final BufferedImage bImage = directory.getTiffImage(byteOrder, params); assertNotNull(bImage, "Failed to get image from " + name); diff --git a/src/test/java/org/apache/commons/imaging/formats/tiff/TiffLzwTest.java b/src/test/java/org/apache/commons/imaging/formats/tiff/TiffLzwTest.java index d6b5ad8..2f7ded4 100644 --- a/src/test/java/org/apache/commons/imaging/formats/tiff/TiffLzwTest.java +++ b/src/test/java/org/apache/commons/imaging/formats/tiff/TiffLzwTest.java @@ -25,7 +25,6 @@ import java.io.IOException; import java.io.InputStream; import java.nio.ByteOrder; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import org.apache.commons.imaging.ImageReadException; @@ -67,8 +66,7 @@ public class TiffLzwTest extends TiffBaseTest { Debug.debug("imageFile", image); final ByteSource byteSource = new ByteSourceFile(image); - final List<byte[]> data = new TiffImageParser().collectRawImageData(byteSource, - Collections.emptyMap()); + final List<byte[]> data = new TiffImageParser().collectRawImageData(byteSource, new TiffImagingParameters()); for (final byte[] bytes : data) { decompressRoundtripAndValidate(bytes); diff --git a/src/test/java/org/apache/commons/imaging/formats/tiff/TiffReadTest.java b/src/test/java/org/apache/commons/imaging/formats/tiff/TiffReadTest.java index 87a5eba..93082a9 100644 --- a/src/test/java/org/apache/commons/imaging/formats/tiff/TiffReadTest.java +++ b/src/test/java/org/apache/commons/imaging/formats/tiff/TiffReadTest.java @@ -21,7 +21,6 @@ import static org.junit.jupiter.api.Assertions.assertNotNull; import java.awt.image.BufferedImage; import java.io.File; -import java.util.HashMap; import java.util.List; import org.apache.commons.imaging.FormatCompliance; @@ -67,7 +66,6 @@ public class TiffReadTest extends TiffBaseTest { continue; } final ByteSourceFile byteSource = new ByteSourceFile(imageFile); - final HashMap<String, Object> params = new HashMap<>(); final TiffReader tiffReader = new TiffReader(true); final TiffContents contents = tiffReader.readDirectories( byteSource, diff --git a/src/test/java/org/apache/commons/imaging/formats/tiff/TiffReadWriteTagsTest.java b/src/test/java/org/apache/commons/imaging/formats/tiff/TiffReadWriteTagsTest.java index 0213afa..2249f69 100644 --- a/src/test/java/org/apache/commons/imaging/formats/tiff/TiffReadWriteTagsTest.java +++ b/src/test/java/org/apache/commons/imaging/formats/tiff/TiffReadWriteTagsTest.java @@ -26,11 +26,10 @@ import org.apache.commons.imaging.ImageReadException; import org.apache.commons.imaging.ImageWriteException; import org.apache.commons.imaging.common.RationalNumber; import org.apache.commons.imaging.common.bytesource.ByteSourceArray; +import org.apache.commons.imaging.formats.tiff.constants.ExifTagConstants; import org.apache.commons.imaging.formats.tiff.constants.GeoTiffTagConstants; import org.apache.commons.imaging.formats.tiff.constants.GpsTagConstants; import org.apache.commons.imaging.formats.tiff.constants.MicrosoftHdPhotoTagConstants; -import org.apache.commons.imaging.formats.tiff.constants.ExifTagConstants; -import org.apache.commons.imaging.formats.tiff.constants.GpsTagConstants; import org.apache.commons.imaging.formats.tiff.constants.TiffTagConstants; import org.apache.commons.imaging.formats.tiff.write.TiffImageWriterLossy; import org.apache.commons.imaging.formats.tiff.write.TiffOutputDirectory; diff --git a/src/test/java/org/apache/commons/imaging/formats/tiff/TiffRoundtripTest.java b/src/test/java/org/apache/commons/imaging/formats/tiff/TiffRoundtripTest.java index f368c61..0e585c8 100644 --- a/src/test/java/org/apache/commons/imaging/formats/tiff/TiffRoundtripTest.java +++ b/src/test/java/org/apache/commons/imaging/formats/tiff/TiffRoundtripTest.java @@ -21,14 +21,10 @@ import static org.junit.jupiter.api.Assertions.assertNotNull; import java.awt.image.BufferedImage; import java.io.File; -import java.util.HashMap; import java.util.List; -import java.util.Map; -import org.apache.commons.imaging.ImageFormats; import org.apache.commons.imaging.ImageInfo; import org.apache.commons.imaging.Imaging; -import org.apache.commons.imaging.ImagingConstants; import org.apache.commons.imaging.common.ImageMetadata; import org.apache.commons.imaging.formats.tiff.constants.TiffConstants; import org.apache.commons.imaging.internal.Debug; @@ -60,10 +56,9 @@ public class TiffRoundtripTest extends TiffBaseTest { }; for (final int compression : compressions) { final File tempFile = File.createTempFile(imageFile.getName() + "-" + compression + ".", ".tif"); - final Map<String, Object> params = new HashMap<>(); - params.put(ImagingConstants.PARAM_KEY_COMPRESSION, compression); - Imaging.writeImage(image, tempFile, ImageFormats.TIFF, - params); + final TiffImagingParameters params = new TiffImagingParameters(); + params.setCompression(compression); + Imaging.writeImage(image, tempFile, params); final BufferedImage image2 = Imaging.getBufferedImage(tempFile); assertNotNull(image2); } diff --git a/src/test/java/org/apache/commons/imaging/formats/tiff/TiffSubImageTest.java b/src/test/java/org/apache/commons/imaging/formats/tiff/TiffSubImageTest.java index c6001d8..5b7e8af 100644 --- a/src/test/java/org/apache/commons/imaging/formats/tiff/TiffSubImageTest.java +++ b/src/test/java/org/apache/commons/imaging/formats/tiff/TiffSubImageTest.java @@ -22,16 +22,11 @@ import static org.junit.jupiter.api.Assertions.fail; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; -import java.util.HashMap; import java.util.List; -import java.util.Map; -import java.util.TreeMap; -import org.apache.commons.imaging.ImageFormats; import org.apache.commons.imaging.ImageReadException; import org.apache.commons.imaging.ImageWriteException; import org.apache.commons.imaging.Imaging; -import org.apache.commons.imaging.formats.tiff.constants.TiffConstants; import org.junit.jupiter.api.Test; public class TiffSubImageTest extends TiffBaseTest { @@ -44,13 +39,12 @@ public class TiffSubImageTest extends TiffBaseTest { @Test public void testSubImage() throws ImageReadException, ImageWriteException, IOException { final BufferedImage src = new BufferedImage(10, 10, BufferedImage.TYPE_INT_RGB); - final byte[] imageBytes = Imaging.writeImageToBytes(src, ImageFormats.TIFF, null); - - final Map<String, Object> params = new TreeMap<>(); - params.put(TiffConstants.PARAM_KEY_SUBIMAGE_X, 0); - params.put(TiffConstants.PARAM_KEY_SUBIMAGE_Y, 0); - params.put(TiffConstants.PARAM_KEY_SUBIMAGE_WIDTH, 2); - params.put(TiffConstants.PARAM_KEY_SUBIMAGE_HEIGHT, 3); + final TiffImagingParameters params = new TiffImagingParameters(); + final byte[] imageBytes = Imaging.writeImageToBytes(src, params); + params.setSubImageX(0); + params.setSubImageY(0); + params.setSubImageWidth(2); + params.setSubImageHeight(3); final BufferedImage image = Imaging.getBufferedImage(imageBytes, params); assertEquals(image.getWidth(), 2); assertEquals(image.getHeight(), 3); @@ -63,11 +57,11 @@ public class TiffSubImageTest extends TiffBaseTest { final int width = referenceImage.getWidth(); final int height = referenceImage.getHeight(); - final Map<String, Object> params = new HashMap<>(); - params.put(TiffConstants.PARAM_KEY_SUBIMAGE_X, 0); - params.put(TiffConstants.PARAM_KEY_SUBIMAGE_Y, 0); - params.put(TiffConstants.PARAM_KEY_SUBIMAGE_WIDTH, width); - params.put(TiffConstants.PARAM_KEY_SUBIMAGE_HEIGHT, height); + final TiffImagingParameters params = new TiffImagingParameters(); + params.setSubImageX(0); + params.setSubImageY(0); + params.setSubImageWidth(width); + params.setSubImageHeight(height); final BufferedImage image = Imaging.getBufferedImage(target, params); assertEquals(image.getWidth(), width, "Improper width when sub-imaging entire image"); @@ -83,11 +77,11 @@ public class TiffSubImageTest extends TiffBaseTest { private void processBadParams(final File target, final int x, final int y, final int width, final int height, final String comment) throws IOException{ try{ - final Map<String, Object> params = new HashMap<>(); - params.put(TiffConstants.PARAM_KEY_SUBIMAGE_X, x); - params.put(TiffConstants.PARAM_KEY_SUBIMAGE_Y, y); - params.put(TiffConstants.PARAM_KEY_SUBIMAGE_WIDTH, width); - params.put(TiffConstants.PARAM_KEY_SUBIMAGE_HEIGHT, height); + final TiffImagingParameters params = new TiffImagingParameters(); + params.setSubImageX(x); + params.setSubImageY(y); + params.setSubImageWidth(width); + params.setSubImageHeight(height); final BufferedImage image = Imaging.getBufferedImage(target, params); fail("Reading TIFF sub-image failed to detect bad parameter: "+comment); }catch(final ImageReadException ire){ @@ -106,11 +100,11 @@ public class TiffSubImageTest extends TiffBaseTest { } final int []rArgb = new int[rW*rH]; referenceImage.getRGB(0, 0, rW, rH, rArgb, 0, rW); - final Map<String, Object> params = new HashMap<>(); - params.put(TiffConstants.PARAM_KEY_SUBIMAGE_X, 1); - params.put(TiffConstants.PARAM_KEY_SUBIMAGE_Y, 1); - params.put(TiffConstants.PARAM_KEY_SUBIMAGE_WIDTH, rW-2); - params.put(TiffConstants.PARAM_KEY_SUBIMAGE_HEIGHT, rH-2); + final TiffImagingParameters params = new TiffImagingParameters(); + params.setSubImageX(1); + params.setSubImageY(1); + params.setSubImageWidth(rW - 2); + params.setSubImageHeight(rH - 2); final BufferedImage image = Imaging.getBufferedImage(target, params); final int iW = image.getWidth(); final int iH = image.getHeight(); diff --git a/src/test/java/org/apache/commons/imaging/formats/wbmp/WbmpReadTest.java b/src/test/java/org/apache/commons/imaging/formats/wbmp/WbmpReadTest.java index dd0c370..da61423 100644 --- a/src/test/java/org/apache/commons/imaging/formats/wbmp/WbmpReadTest.java +++ b/src/test/java/org/apache/commons/imaging/formats/wbmp/WbmpReadTest.java @@ -18,9 +18,7 @@ import static org.junit.jupiter.api.Assertions.assertNotNull; import java.awt.image.BufferedImage; import java.io.File; -import java.util.HashMap; import java.util.List; -import java.util.Map; import org.apache.commons.imaging.ImageInfo; import org.apache.commons.imaging.Imaging; @@ -43,8 +41,7 @@ public class WbmpReadTest extends WbmpBaseTest { final ImageMetadata metadata = Imaging.getMetadata(imageFile); Assertions.assertFalse(metadata instanceof File); // Dummy check to avoid unused warning (it may be null) - final Map<String, Object> params = new HashMap<>(); - final ImageInfo imageInfo = Imaging.getImageInfo(imageFile, params); + final ImageInfo imageInfo = Imaging.getImageInfo(imageFile, new WbmpImagingParameters()); assertNotNull(imageInfo); final BufferedImage image = Imaging.getBufferedImage(imageFile); diff --git a/src/test/java/org/apache/commons/imaging/formats/xbm/XbmReadTest.java b/src/test/java/org/apache/commons/imaging/formats/xbm/XbmReadTest.java index 436c633..32d3f10 100644 --- a/src/test/java/org/apache/commons/imaging/formats/xbm/XbmReadTest.java +++ b/src/test/java/org/apache/commons/imaging/formats/xbm/XbmReadTest.java @@ -18,9 +18,7 @@ import static org.junit.jupiter.api.Assertions.assertNotNull; import java.awt.image.BufferedImage; import java.io.File; -import java.util.HashMap; import java.util.List; -import java.util.Map; import org.apache.commons.imaging.ImageInfo; import org.apache.commons.imaging.Imaging; @@ -43,8 +41,7 @@ public class XbmReadTest extends XbmBaseTest { final ImageMetadata metadata = Imaging.getMetadata(imageFile); Assertions.assertFalse(metadata instanceof File); // Dummy check to avoid unused warning (it may be null) - final Map<String, Object> params = new HashMap<>(); - final ImageInfo imageInfo = Imaging.getImageInfo(imageFile, params); + final ImageInfo imageInfo = Imaging.getImageInfo(imageFile, new XbmImagingParameters()); assertNotNull(imageInfo); final BufferedImage image = Imaging.getBufferedImage(imageFile); diff --git a/src/test/java/org/apache/commons/imaging/formats/xmp/XmpUpdateTest.java b/src/test/java/org/apache/commons/imaging/formats/xmp/XmpUpdateTest.java index 1acb3e3..db12db0 100644 --- a/src/test/java/org/apache/commons/imaging/formats/xmp/XmpUpdateTest.java +++ b/src/test/java/org/apache/commons/imaging/formats/xmp/XmpUpdateTest.java @@ -21,15 +21,16 @@ import static org.junit.jupiter.api.Assertions.assertNotNull; import java.awt.image.BufferedImage; import java.io.File; -import java.util.HashMap; import java.util.List; -import java.util.Map; import org.apache.commons.imaging.ImageFormat; import org.apache.commons.imaging.ImageFormats; import org.apache.commons.imaging.Imaging; -import org.apache.commons.imaging.ImagingConstants; import org.apache.commons.imaging.ImagingTest; +import org.apache.commons.imaging.common.XmpImagingParameters; +import org.apache.commons.imaging.formats.gif.GifImagingParameters; +import org.apache.commons.imaging.formats.png.PngImagingParameters; +import org.apache.commons.imaging.formats.tiff.TiffImagingParameters; import org.apache.commons.imaging.internal.Debug; import org.junit.jupiter.api.Test; @@ -49,8 +50,18 @@ public class XmpUpdateTest extends ImagingTest { Debug.debug(); final ImageFormat imageFormat = Imaging.guessFormat(imageFile); + XmpImagingParameters params = null; + if (imageFormat.equals(ImageFormats.PNG)) { + params = new PngImagingParameters(); + } else if (imageFormat.equals(ImageFormats.TIFF)) { + params = new TiffImagingParameters(); + } else if (imageFormat.equals(ImageFormats.GIF)) { + params = new GifImagingParameters(); + } else { + continue; + } - String xmpXml = Imaging.getXmpXml(imageFile); + String xmpXml = Imaging.getXmpXml(imageFile, params); if (null == xmpXml && imageFormat.equals(ImageFormats.GIF)) { xmpXml = "temporary test until I can locate a GIF with XMP in the wild."; @@ -59,43 +70,19 @@ public class XmpUpdateTest extends ImagingTest { continue; } - assertNotNull(xmpXml); - - if (imageFormat.equals(ImageFormats.PNG)) { /* - * do - * nothing - */ - } else if (imageFormat.equals(ImageFormats.TIFF)) { /* - * do - * nothing - */ - } else if (imageFormat.equals(ImageFormats.GIF)) { /* - * do - * nothing - */ - } else { - continue; - } - final File tempFile = File.createTempFile(imageFile.getName() + ".", "." + imageFormat.getExtension()); final BufferedImage image = Imaging.getBufferedImage(imageFile); // ---- - final Map<String, Object> params = new HashMap<>(); - params.put(ImagingConstants.PARAM_KEY_XMP_XML, xmpXml); - Imaging.writeImage(image, tempFile, imageFormat, params); + params.setXmpXml(xmpXml); + Imaging.writeImage(image, tempFile, params); final String xmpXmlOut = Imaging.getXmpXml(tempFile); assertNotNull(xmpXmlOut); - assertEquals(xmpXmlOut, xmpXml); - - // Debug.debug("xmpXmlOut", xmpXmlOut.length()); - // Debug.debug("xmpXml", xmpXml); - // Debug.debug(); } } } diff --git a/src/test/java/org/apache/commons/imaging/formats/xpm/XpmReadTest.java b/src/test/java/org/apache/commons/imaging/formats/xpm/XpmReadTest.java index b9d4d38..ad133de 100644 --- a/src/test/java/org/apache/commons/imaging/formats/xpm/XpmReadTest.java +++ b/src/test/java/org/apache/commons/imaging/formats/xpm/XpmReadTest.java @@ -18,9 +18,7 @@ import static org.junit.jupiter.api.Assertions.assertNotNull; import java.awt.image.BufferedImage; import java.io.File; -import java.util.HashMap; import java.util.List; -import java.util.Map; import org.apache.commons.imaging.ImageInfo; import org.apache.commons.imaging.Imaging; @@ -43,7 +41,7 @@ public class XpmReadTest extends XpmBaseTest { final ImageMetadata metadata = Imaging.getMetadata(imageFile); Assertions.assertFalse(metadata instanceof File); // Dummy check to avoid unused warning (it may be null) - final Map<String, Object> params = new HashMap<>(); + final XpmImagingParameters params = new XpmImagingParameters(); final ImageInfo imageInfo = Imaging.getImageInfo(imageFile, params); assertNotNull(imageInfo); diff --git a/src/test/java/org/apache/commons/imaging/roundtrip/NullParametersRoundtripTest.java b/src/test/java/org/apache/commons/imaging/roundtrip/NullParametersRoundtripTest.java index ed90eee..c5c4a0c 100644 --- a/src/test/java/org/apache/commons/imaging/roundtrip/NullParametersRoundtripTest.java +++ b/src/test/java/org/apache/commons/imaging/roundtrip/NullParametersRoundtripTest.java @@ -38,7 +38,7 @@ public class NullParametersRoundtripTest extends RoundtripBase { public void testNullParametersRoundtrip(final FormatInfo formatInfo) throws Exception { final BufferedImage testImage = TestImages.createFullColorImage(1, 1); final File temp1 = File.createTempFile("nullParameters.", "." + formatInfo.format.getExtension()); - Imaging.writeImage(testImage, temp1, formatInfo.format, null); + Imaging.writeImage(testImage, temp1, null); Imaging.getImageInfo(temp1, null); Imaging.getImageSize(temp1, null); Imaging.getMetadata(temp1, null); diff --git a/src/test/java/org/apache/commons/imaging/roundtrip/PixelDensityRoundtrip.java b/src/test/java/org/apache/commons/imaging/roundtrip/PixelDensityRoundtrip.java index 9d2c6e5..dd1b102 100644 --- a/src/test/java/org/apache/commons/imaging/roundtrip/PixelDensityRoundtrip.java +++ b/src/test/java/org/apache/commons/imaging/roundtrip/PixelDensityRoundtrip.java @@ -21,13 +21,11 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import java.awt.image.BufferedImage; import java.io.File; -import java.util.HashMap; -import java.util.Map; import java.util.stream.Stream; import org.apache.commons.imaging.ImageInfo; import org.apache.commons.imaging.Imaging; -import org.apache.commons.imaging.ImagingConstants; +import org.apache.commons.imaging.ImagingParameters; import org.apache.commons.imaging.PixelDensity; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; @@ -46,10 +44,11 @@ public class PixelDensityRoundtrip extends RoundtripBase { final File temp1 = File.createTempFile("pixeldensity.", "." + formatInfo.format.getExtension()); - final Map<String, Object> params = new HashMap<>(); + final ImagingParameters params = new ImagingParameters(); + params.setImageFormat(formatInfo.format); final PixelDensity pixelDensity = PixelDensity.createFromPixelsPerInch(75, 150); - params.put(ImagingConstants.PARAM_KEY_PIXEL_DENSITY, pixelDensity); - Imaging.writeImage(testImage, temp1, formatInfo.format, params); + params.setPixelDensity(pixelDensity); + Imaging.writeImage(testImage, temp1, params); final ImageInfo imageInfo = Imaging.getImageInfo(temp1); if (imageInfo != null) { diff --git a/src/test/java/org/apache/commons/imaging/roundtrip/RoundtripBase.java b/src/test/java/org/apache/commons/imaging/roundtrip/RoundtripBase.java index 62b98d3..bff21f3 100644 --- a/src/test/java/org/apache/commons/imaging/roundtrip/RoundtripBase.java +++ b/src/test/java/org/apache/commons/imaging/roundtrip/RoundtripBase.java @@ -21,14 +21,12 @@ import static org.junit.jupiter.api.Assertions.assertNotNull; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; -import java.util.HashMap; -import java.util.Map; import java.util.stream.Stream; import org.apache.commons.imaging.ImageReadException; import org.apache.commons.imaging.ImageWriteException; import org.apache.commons.imaging.Imaging; -import org.apache.commons.imaging.ImagingConstants; +import org.apache.commons.imaging.ImagingParameters; import org.apache.commons.imaging.common.RgbBufferedImageFactory; import org.apache.commons.imaging.internal.Debug; import org.junit.jupiter.params.provider.Arguments; @@ -42,12 +40,12 @@ public class RoundtripBase { + formatInfo.format.getExtension()); Debug.debug("tempFile: " + temp1.getName()); - final Map<String, Object> params = new HashMap<>(); - Imaging.writeImage(testImage, temp1, formatInfo.format, params); + final ImagingParameters params = new ImagingParameters(); + params.setImageFormat(formatInfo.format); + Imaging.writeImage(testImage, temp1, params); - final Map<String, Object> readParams = new HashMap<>(); - readParams.put(ImagingConstants.BUFFERED_IMAGE_FACTORY, - new RgbBufferedImageFactory()); + final ImagingParameters readParams = new ImagingParameters(); + readParams.setBufferedImageFactory(new RgbBufferedImageFactory()); final BufferedImage image2 = Imaging.getBufferedImage(temp1, readParams); assertNotNull(image2); @@ -61,7 +59,7 @@ public class RoundtripBase { final File temp2 = File.createTempFile(tempPrefix + ".", "." + formatInfo.format.getExtension()); // Debug.debug("tempFile: " + tempFile.getName()); - Imaging.writeImage(image2, temp2, formatInfo.format, params); + Imaging.writeImage(image2, temp2, params); ImageAsserts.assertEquals(temp1, temp2); }