You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ki...@apache.org on 2022/01/16 02:03:04 UTC
[commons-imaging] 04/24: [IMAGING-159] Update code and parameters after reading tests and examples
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 6f6e6e2a73ebf23a24bdb64bc56722a80d479ba1
Author: Bruno P. Kinoshita <ki...@apache.org>
AuthorDate: Fri Apr 23 11:32:09 2021 +1200
[IMAGING-159] Update code and parameters after reading tests and examples
---
.../java/org/apache/commons/imaging/Imaging.java | 15 ++++----
.../commons/imaging/common/XmpEmbeddable.java | 5 ++-
.../imaging/formats/bmp/BmpImagingParameters.java | 8 ++++-
.../imaging/formats/gif/GifImageParser.java | 5 +--
.../imaging/formats/gif/GifImagingParameters.java | 4 +++
.../formats/icns/IcnsImagingParameters.java | 4 +++
.../imaging/formats/ico/IcoImagingParameters.java | 4 +++
.../imaging/formats/jpeg/JpegImageParser.java | 10 ++++--
.../formats/jpeg/JpegImagingParameters.java | 4 +++
.../imaging/formats/pcx/PcxImagingParameters.java | 5 +++
.../imaging/formats/png/PngImageParser.java | 5 +--
.../imaging/formats/png/PngImagingParameters.java | 13 ++++---
.../commons/imaging/formats/png/PngWriter.java | 2 +-
.../imaging/formats/pnm/PnmImageParser.java | 3 --
.../imaging/formats/pnm/PnmImagingParameters.java | 4 +++
.../imaging/formats/psd/PsdImageParser.java | 5 +--
.../imaging/formats/psd/PsdImagingParameters.java | 4 +++
.../formats/rgbe/RgbeImagingParameters.java | 4 +++
.../imaging/formats/tiff/TiffImageParser.java | 41 +++++++++++++---------
.../formats/tiff/TiffImagingParameters.java | 5 +++
.../commons/imaging/formats/tiff/TiffReader.java | 13 +++----
.../formats/wbmp/WbmpImagingParameters.java | 4 +++
.../imaging/formats/xbm/XbmImagingParameters.java | 4 +++
.../imaging/formats/xpm/XpmImagingParameters.java | 9 ++++-
24 files changed, 126 insertions(+), 54 deletions(-)
diff --git a/src/main/java/org/apache/commons/imaging/Imaging.java b/src/main/java/org/apache/commons/imaging/Imaging.java
index 4fbea0d..83f81c7 100644
--- a/src/main/java/org/apache/commons/imaging/Imaging.java
+++ b/src/main/java/org/apache/commons/imaging/Imaging.java
@@ -32,6 +32,7 @@ import java.util.Objects;
import org.apache.commons.imaging.common.ImageMetadata;
import org.apache.commons.imaging.common.XmpEmbeddable;
+import org.apache.commons.imaging.common.XmpImagingParameters;
import org.apache.commons.imaging.common.bytesource.ByteSource;
import org.apache.commons.imaging.common.bytesource.ByteSourceArray;
import org.apache.commons.imaging.common.bytesource.ByteSourceFile;
@@ -890,7 +891,7 @@ public final class Imaging {
* @throws ImageReadException if it fails to parse the image
* @throws IOException if it fails to read the image data
*/
- public static String getXmpXml(final InputStream is, final String fileName, final ImagingParameters params)
+ public static String getXmpXml(final InputStream is, final String fileName, final XmpImagingParameters params)
throws ImageReadException, IOException {
return getXmpXml(new ByteSourceInputStream(is, fileName), params);
}
@@ -921,7 +922,7 @@ public final class Imaging {
* @throws ImageReadException if it fails to parse the image
* @throws IOException if it fails to read the image data
*/
- public static String getXmpXml(final byte[] bytes, final ImagingParameters params)
+ public static String getXmpXml(final byte[] bytes, final XmpImagingParameters params)
throws ImageReadException, IOException {
return getXmpXml(new ByteSourceArray(bytes), params);
}
@@ -938,7 +939,7 @@ public final class Imaging {
*/
public static String getXmpXml(final File file) throws ImageReadException,
IOException {
- return getXmpXml(file, null);
+ return getXmpXml(file, new XmpImagingParameters());
}
/**
@@ -952,7 +953,7 @@ public final class Imaging {
* @throws ImageReadException if it fails to parse the image
* @throws IOException if it fails to read the image data
*/
- public static String getXmpXml(final File file, final ImagingParameters params)
+ public static String getXmpXml(final File file, final XmpImagingParameters params)
throws ImageReadException, IOException {
return getXmpXml(new ByteSourceFile(file), params);
}
@@ -968,9 +969,7 @@ public final class Imaging {
* @throws ImageReadException if it fails to parse the image
* @throws IOException if it fails to read the image data
*/
- // TODO: we have no way of knowing whether getImageParser will return a parser that is compatible with the ImagingParameters instance given
- @SuppressWarnings({ "unchecked", "rawtypes" })
- public static String getXmpXml(final ByteSource byteSource, final ImagingParameters params)
+ public static String getXmpXml(final ByteSource byteSource, final XmpImagingParameters params)
throws ImageReadException, IOException {
final ImageParser<?> imageParser = getImageParser(byteSource);
if (imageParser instanceof XmpEmbeddable) {
@@ -1324,7 +1323,7 @@ public final class Imaging {
*/
public static BufferedImage getBufferedImage(final InputStream is, final ImagingParameters params)
throws ImageReadException, IOException {
- String fileName = params != null ? "" : null;
+ String fileName = params != null ? params.getFileName() : null;
return getBufferedImage(new ByteSourceInputStream(is, fileName), params);
}
diff --git a/src/main/java/org/apache/commons/imaging/common/XmpEmbeddable.java b/src/main/java/org/apache/commons/imaging/common/XmpEmbeddable.java
index 12af31f..731f8b2 100644
--- a/src/main/java/org/apache/commons/imaging/common/XmpEmbeddable.java
+++ b/src/main/java/org/apache/commons/imaging/common/XmpEmbeddable.java
@@ -19,7 +19,6 @@ package org.apache.commons.imaging.common;
import java.io.IOException;
import org.apache.commons.imaging.ImageReadException;
-import org.apache.commons.imaging.ImagingParameters;
import org.apache.commons.imaging.common.bytesource.ByteSource;
/**
@@ -29,7 +28,7 @@ import org.apache.commons.imaging.common.bytesource.ByteSource;
* @see <a href="https://en.wikipedia.org/wiki/Extensible_Metadata_Platform">https://en.wikipedia.org/wiki/Extensible_Metadata_Platform</a>
* @since 1.0
*/
-public interface XmpEmbeddable<T extends ImagingParameters> {
+public interface XmpEmbeddable {
/**
* Get a string containing XML-formatted text conforming to the Extensible
@@ -48,7 +47,7 @@ public interface XmpEmbeddable<T extends ImagingParameters> {
* parser implementation.
* @throws IOException In the event of unsuccessful read or access operation.
*/
- String getXmpXml(ByteSource byteSource, T params)
+ String getXmpXml(ByteSource byteSource, XmpImagingParameters params)
throws ImageReadException, IOException;
}
diff --git a/src/main/java/org/apache/commons/imaging/formats/bmp/BmpImagingParameters.java b/src/main/java/org/apache/commons/imaging/formats/bmp/BmpImagingParameters.java
index 73cc803..cf19e8e 100644
--- a/src/main/java/org/apache/commons/imaging/formats/bmp/BmpImagingParameters.java
+++ b/src/main/java/org/apache/commons/imaging/formats/bmp/BmpImagingParameters.java
@@ -17,10 +17,16 @@
package org.apache.commons.imaging.formats.bmp;
+import org.apache.commons.imaging.ImageFormats;
import org.apache.commons.imaging.ImagingParameters;
/**
* Bmp format parameters.
* @since 1.0-alpha3
*/
-public class BmpImagingParameters extends ImagingParameters {}
+public class BmpImagingParameters extends ImagingParameters {
+
+ public BmpImagingParameters() {
+ setImageFormat(ImageFormats.BMP);
+ }
+}
diff --git a/src/main/java/org/apache/commons/imaging/formats/gif/GifImageParser.java b/src/main/java/org/apache/commons/imaging/formats/gif/GifImageParser.java
index 2da2527..92c4d03 100644
--- a/src/main/java/org/apache/commons/imaging/formats/gif/GifImageParser.java
+++ b/src/main/java/org/apache/commons/imaging/formats/gif/GifImageParser.java
@@ -48,13 +48,14 @@ import org.apache.commons.imaging.common.BinaryOutputStream;
import org.apache.commons.imaging.common.ImageBuilder;
import org.apache.commons.imaging.common.ImageMetadata;
import org.apache.commons.imaging.common.XmpEmbeddable;
+import org.apache.commons.imaging.common.XmpImagingParameters;
import org.apache.commons.imaging.common.bytesource.ByteSource;
import org.apache.commons.imaging.common.mylzw.MyLzwCompressor;
import org.apache.commons.imaging.common.mylzw.MyLzwDecompressor;
import org.apache.commons.imaging.palette.Palette;
import org.apache.commons.imaging.palette.PaletteFactory;
-public class GifImageParser extends ImageParser<GifImagingParameters> implements XmpEmbeddable<GifImagingParameters> {
+public class GifImageParser extends ImageParser<GifImagingParameters> implements XmpEmbeddable {
private static final Logger LOGGER = Logger.getLogger(GifImageParser.class.getName());
@@ -1068,7 +1069,7 @@ public class GifImageParser extends ImageParser<GifImagingParameters> implements
* @return Xmp Xml as String, if present. Otherwise, returns null.
*/
@Override
- public String getXmpXml(final ByteSource byteSource, final GifImagingParameters params)
+ public String getXmpXml(final ByteSource byteSource, final XmpImagingParameters params)
throws ImageReadException, IOException {
try (InputStream is = byteSource.getInputStream()) {
final GifHeaderInfo ghi = readHeader(is, null);
diff --git a/src/main/java/org/apache/commons/imaging/formats/gif/GifImagingParameters.java b/src/main/java/org/apache/commons/imaging/formats/gif/GifImagingParameters.java
index 2e50660..fa8007c 100644
--- a/src/main/java/org/apache/commons/imaging/formats/gif/GifImagingParameters.java
+++ b/src/main/java/org/apache/commons/imaging/formats/gif/GifImagingParameters.java
@@ -17,6 +17,7 @@
package org.apache.commons.imaging.formats.gif;
+import org.apache.commons.imaging.ImageFormats;
import org.apache.commons.imaging.common.XmpImagingParameters;
/**
@@ -25,4 +26,7 @@ import org.apache.commons.imaging.common.XmpImagingParameters;
*/
public class GifImagingParameters extends XmpImagingParameters {
+ public GifImagingParameters() {
+ setImageFormat(ImageFormats.GIF);
+ }
}
diff --git a/src/main/java/org/apache/commons/imaging/formats/icns/IcnsImagingParameters.java b/src/main/java/org/apache/commons/imaging/formats/icns/IcnsImagingParameters.java
index bbfd8c8..1d83839 100644
--- a/src/main/java/org/apache/commons/imaging/formats/icns/IcnsImagingParameters.java
+++ b/src/main/java/org/apache/commons/imaging/formats/icns/IcnsImagingParameters.java
@@ -15,6 +15,7 @@
package org.apache.commons.imaging.formats.icns;
+import org.apache.commons.imaging.ImageFormats;
import org.apache.commons.imaging.ImagingParameters;
/**
@@ -23,4 +24,7 @@ import org.apache.commons.imaging.ImagingParameters;
*/
public class IcnsImagingParameters extends ImagingParameters {
+ public IcnsImagingParameters() {
+ setImageFormat(ImageFormats.ICNS);
+ }
}
diff --git a/src/main/java/org/apache/commons/imaging/formats/ico/IcoImagingParameters.java b/src/main/java/org/apache/commons/imaging/formats/ico/IcoImagingParameters.java
index d686bce..ed86d9c 100644
--- a/src/main/java/org/apache/commons/imaging/formats/ico/IcoImagingParameters.java
+++ b/src/main/java/org/apache/commons/imaging/formats/ico/IcoImagingParameters.java
@@ -15,6 +15,7 @@
package org.apache.commons.imaging.formats.ico;
+import org.apache.commons.imaging.ImageFormats;
import org.apache.commons.imaging.ImagingParameters;
/**
@@ -23,4 +24,7 @@ import org.apache.commons.imaging.ImagingParameters;
*/
public class IcoImagingParameters extends ImagingParameters {
+ public IcoImagingParameters () {
+ setImageFormat(ImageFormats.ICO);
+ }
}
diff --git a/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegImageParser.java b/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegImageParser.java
index 216e0eb..e4bb582 100644
--- a/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegImageParser.java
+++ b/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegImageParser.java
@@ -40,6 +40,7 @@ import org.apache.commons.imaging.ImageParser;
import org.apache.commons.imaging.ImageReadException;
import org.apache.commons.imaging.common.ImageMetadata;
import org.apache.commons.imaging.common.XmpEmbeddable;
+import org.apache.commons.imaging.common.XmpImagingParameters;
import org.apache.commons.imaging.common.bytesource.ByteSource;
import org.apache.commons.imaging.formats.jpeg.decoder.JpegDecoder;
import org.apache.commons.imaging.formats.jpeg.iptc.IptcParser;
@@ -61,7 +62,7 @@ import org.apache.commons.imaging.formats.tiff.TiffImageParser;
import org.apache.commons.imaging.formats.tiff.constants.TiffTagConstants;
import org.apache.commons.imaging.internal.Debug;
-public class JpegImageParser extends ImageParser<JpegImagingParameters> implements XmpEmbeddable<JpegImagingParameters> {
+public class JpegImageParser extends ImageParser<JpegImagingParameters> implements XmpEmbeddable {
private static final Logger LOGGER = Logger.getLogger(JpegImageParser.class.getName());
@@ -317,8 +318,11 @@ public class JpegImageParser extends ImageParser<JpegImagingParameters> implemen
}
@Override
- public ImageMetadata getMetadata(final ByteSource byteSource, final JpegImagingParameters params)
+ public ImageMetadata getMetadata(final ByteSource byteSource, JpegImagingParameters params)
throws ImageReadException, IOException {
+ if (params == null) {
+ params = new JpegImagingParameters();
+ }
final TiffImageMetadata exif = getExifMetadata(byteSource, params);
final JpegPhotoshopMetadata photoshop = getPhotoshopMetadata(byteSource,
@@ -534,7 +538,7 @@ public class JpegImageParser extends ImageParser<JpegImagingParameters> implemen
* @return Xmp Xml as String, if present. Otherwise, returns null.
*/
@Override
- public String getXmpXml(final ByteSource byteSource, final JpegImagingParameters params)
+ public String getXmpXml(final ByteSource byteSource, final XmpImagingParameters params)
throws ImageReadException, IOException {
final List<String> result = new ArrayList<>();
diff --git a/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegImagingParameters.java b/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegImagingParameters.java
index d2083f3..fff58f3 100644
--- a/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegImagingParameters.java
+++ b/src/main/java/org/apache/commons/imaging/formats/jpeg/JpegImagingParameters.java
@@ -15,6 +15,7 @@
package org.apache.commons.imaging.formats.jpeg;
+import org.apache.commons.imaging.ImageFormats;
import org.apache.commons.imaging.formats.tiff.TiffImagingParameters;
/**
@@ -23,4 +24,7 @@ import org.apache.commons.imaging.formats.tiff.TiffImagingParameters;
*/
public class JpegImagingParameters extends TiffImagingParameters {
+ public JpegImagingParameters() {
+ setImageFormat(ImageFormats.JPEG);
+ }
}
diff --git a/src/main/java/org/apache/commons/imaging/formats/pcx/PcxImagingParameters.java b/src/main/java/org/apache/commons/imaging/formats/pcx/PcxImagingParameters.java
index 4fdfa6f..ed19523 100644
--- a/src/main/java/org/apache/commons/imaging/formats/pcx/PcxImagingParameters.java
+++ b/src/main/java/org/apache/commons/imaging/formats/pcx/PcxImagingParameters.java
@@ -15,6 +15,7 @@
package org.apache.commons.imaging.formats.pcx;
+import org.apache.commons.imaging.ImageFormats;
import org.apache.commons.imaging.ImagingParameters;
/**
@@ -27,6 +28,10 @@ public class PcxImagingParameters extends ImagingParameters {
private int bitDepth = -1;
private int compression = PcxConstants.PCX_COMPRESSION_UNCOMPRESSED;
+ public PcxImagingParameters() {
+ setImageFormat(ImageFormats.PCX);
+ }
+
public int getPlanes() {
return planes;
}
diff --git a/src/main/java/org/apache/commons/imaging/formats/png/PngImageParser.java b/src/main/java/org/apache/commons/imaging/formats/png/PngImageParser.java
index 67bd8a5..1632ecc 100644
--- a/src/main/java/org/apache/commons/imaging/formats/png/PngImageParser.java
+++ b/src/main/java/org/apache/commons/imaging/formats/png/PngImageParser.java
@@ -50,6 +50,7 @@ import org.apache.commons.imaging.ImageWriteException;
import org.apache.commons.imaging.common.GenericImageMetadata;
import org.apache.commons.imaging.common.ImageMetadata;
import org.apache.commons.imaging.common.XmpEmbeddable;
+import org.apache.commons.imaging.common.XmpImagingParameters;
import org.apache.commons.imaging.common.bytesource.ByteSource;
import org.apache.commons.imaging.formats.png.chunks.PngChunk;
import org.apache.commons.imaging.formats.png.chunks.PngChunkGama;
@@ -69,7 +70,7 @@ import org.apache.commons.imaging.formats.png.transparencyfilters.TransparencyFi
import org.apache.commons.imaging.formats.png.transparencyfilters.TransparencyFilterTrueColor;
import org.apache.commons.imaging.icc.IccProfileParser;
-public class PngImageParser extends ImageParser<PngImagingParameters> implements XmpEmbeddable<PngImagingParameters> {
+public class PngImageParser extends ImageParser<PngImagingParameters> implements XmpEmbeddable {
private static final Logger LOGGER = Logger.getLogger(PngImageParser.class.getName());
@@ -703,7 +704,7 @@ public class PngImageParser extends ImageParser<PngImagingParameters> implement
}
@Override
- public String getXmpXml(final ByteSource byteSource, final PngImagingParameters params)
+ public String getXmpXml(final ByteSource byteSource, final XmpImagingParameters params)
throws ImageReadException, IOException {
final List<PngChunk> chunks = readChunks(byteSource, new ChunkType[] { ChunkType.iTXt }, false);
diff --git a/src/main/java/org/apache/commons/imaging/formats/png/PngImagingParameters.java b/src/main/java/org/apache/commons/imaging/formats/png/PngImagingParameters.java
index 3fdcc07..5c462b1 100644
--- a/src/main/java/org/apache/commons/imaging/formats/png/PngImagingParameters.java
+++ b/src/main/java/org/apache/commons/imaging/formats/png/PngImagingParameters.java
@@ -18,6 +18,7 @@ package org.apache.commons.imaging.formats.png;
import java.util.Collections;
import java.util.List;
+import org.apache.commons.imaging.ImageFormats;
import org.apache.commons.imaging.common.XmpImagingParameters;
/**
@@ -51,7 +52,11 @@ public class PngImagingParameters extends XmpImagingParameters {
*
* <p>Valid values: a list of WriteTexts.</p>
*/
- private List<PngText> textChunks = null;
+ private List<? extends PngText> textChunks = null;
+
+ public PngImagingParameters() {
+ setImageFormat(ImageFormats.PNG);
+ }
public byte getBitDepth() {
return bitDepth;
@@ -85,11 +90,11 @@ public class PngImagingParameters extends XmpImagingParameters {
this.physicalScale = physicalScale;
}
- public List<PngText> getTextChunks() {
- return Collections.unmodifiableList(textChunks);
+ public List<? extends PngText> getTextChunks() {
+ return textChunks != null ? Collections.unmodifiableList(textChunks) : null;
}
- public void setTextChunks(List<PngText> textChunks) {
+ public void setTextChunks(List<? extends PngText> textChunks) {
this.textChunks = textChunks;
}
}
diff --git a/src/main/java/org/apache/commons/imaging/formats/png/PngWriter.java b/src/main/java/org/apache/commons/imaging/formats/png/PngWriter.java
index ca32993..a2dac83 100644
--- a/src/main/java/org/apache/commons/imaging/formats/png/PngWriter.java
+++ b/src/main/java/org/apache/commons/imaging/formats/png/PngWriter.java
@@ -441,7 +441,7 @@ class PngWriter {
writeChunkXmpiTXt(os, xmpXml);
}
- final List<PngText> outputTexts = params.getTextChunks();
+ final List<? extends PngText> outputTexts = params.getTextChunks();
if (outputTexts != null) {
for (final PngText text : outputTexts) {
if (text instanceof PngText.Text) {
diff --git a/src/main/java/org/apache/commons/imaging/formats/pnm/PnmImageParser.java b/src/main/java/org/apache/commons/imaging/formats/pnm/PnmImageParser.java
index 5dc2577..c51f581 100644
--- a/src/main/java/org/apache/commons/imaging/formats/pnm/PnmImageParser.java
+++ b/src/main/java/org/apache/commons/imaging/formats/pnm/PnmImageParser.java
@@ -44,9 +44,6 @@ public class PnmImageParser extends ImageParser<PnmImagingParameters> {
private static final String DEFAULT_EXTENSION = ".pnm";
private static final String[] ACCEPTED_EXTENSIONS = { ".pbm", ".pgm",
".ppm", ".pnm", ".pam" };
- public static final String PARAM_KEY_PNM_RAWBITS = "PNM_RAWBITS";
- public static final String PARAM_VALUE_PNM_RAWBITS_YES = "YES";
- public static final String PARAM_VALUE_PNM_RAWBITS_NO = "NO";
public PnmImageParser() {
super.setByteOrder(ByteOrder.LITTLE_ENDIAN);
diff --git a/src/main/java/org/apache/commons/imaging/formats/pnm/PnmImagingParameters.java b/src/main/java/org/apache/commons/imaging/formats/pnm/PnmImagingParameters.java
index 68f1e7c..927855e 100644
--- a/src/main/java/org/apache/commons/imaging/formats/pnm/PnmImagingParameters.java
+++ b/src/main/java/org/apache/commons/imaging/formats/pnm/PnmImagingParameters.java
@@ -31,6 +31,10 @@ public class PnmImagingParameters extends ImagingParameters {
*/
private ImageFormats subtype = null;
+ public PnmImagingParameters() {
+ setImageFormat(ImageFormats.PNM);
+ }
+
public boolean isRawBits() {
return rawBits;
}
diff --git a/src/main/java/org/apache/commons/imaging/formats/psd/PsdImageParser.java b/src/main/java/org/apache/commons/imaging/formats/psd/PsdImageParser.java
index 56c439d..8267470 100644
--- a/src/main/java/org/apache/commons/imaging/formats/psd/PsdImageParser.java
+++ b/src/main/java/org/apache/commons/imaging/formats/psd/PsdImageParser.java
@@ -41,6 +41,7 @@ import org.apache.commons.imaging.ImageParser;
import org.apache.commons.imaging.ImageReadException;
import org.apache.commons.imaging.common.ImageMetadata;
import org.apache.commons.imaging.common.XmpEmbeddable;
+import org.apache.commons.imaging.common.XmpImagingParameters;
import org.apache.commons.imaging.common.bytesource.ByteSource;
import org.apache.commons.imaging.formats.psd.dataparsers.DataParser;
import org.apache.commons.imaging.formats.psd.dataparsers.DataParserBitmap;
@@ -53,7 +54,7 @@ import org.apache.commons.imaging.formats.psd.datareaders.CompressedDataReader;
import org.apache.commons.imaging.formats.psd.datareaders.DataReader;
import org.apache.commons.imaging.formats.psd.datareaders.UncompressedDataReader;
-public class PsdImageParser extends ImageParser<PsdImagingParameters> implements XmpEmbeddable<PsdImagingParameters> {
+public class PsdImageParser extends ImageParser<PsdImagingParameters> implements XmpEmbeddable {
private static final String DEFAULT_EXTENSION = ".psd";
private static final String[] ACCEPTED_EXTENSIONS = { DEFAULT_EXTENSION, };
private static final int PSD_SECTION_HEADER = 0;
@@ -656,7 +657,7 @@ public class PsdImageParser extends ImageParser<PsdImagingParameters> implements
* @return Xmp Xml as String, if present. Otherwise, returns null.
*/
@Override
- public String getXmpXml(final ByteSource byteSource, final PsdImagingParameters params)
+ public String getXmpXml(final ByteSource byteSource, final XmpImagingParameters params)
throws ImageReadException, IOException {
final PsdImageContents imageContents = readImageContents(byteSource);
diff --git a/src/main/java/org/apache/commons/imaging/formats/psd/PsdImagingParameters.java b/src/main/java/org/apache/commons/imaging/formats/psd/PsdImagingParameters.java
index 306069f..761892a 100644
--- a/src/main/java/org/apache/commons/imaging/formats/psd/PsdImagingParameters.java
+++ b/src/main/java/org/apache/commons/imaging/formats/psd/PsdImagingParameters.java
@@ -17,6 +17,7 @@
package org.apache.commons.imaging.formats.psd;
+import org.apache.commons.imaging.ImageFormats;
import org.apache.commons.imaging.ImagingParameters;
/**
@@ -25,4 +26,7 @@ import org.apache.commons.imaging.ImagingParameters;
*/
public class PsdImagingParameters extends ImagingParameters {
+ public PsdImagingParameters() {
+ setImageFormat(ImageFormats.PSD);
+ }
}
diff --git a/src/main/java/org/apache/commons/imaging/formats/rgbe/RgbeImagingParameters.java b/src/main/java/org/apache/commons/imaging/formats/rgbe/RgbeImagingParameters.java
index 9d1f6eb..3575820 100644
--- a/src/main/java/org/apache/commons/imaging/formats/rgbe/RgbeImagingParameters.java
+++ b/src/main/java/org/apache/commons/imaging/formats/rgbe/RgbeImagingParameters.java
@@ -15,6 +15,7 @@
package org.apache.commons.imaging.formats.rgbe;
+import org.apache.commons.imaging.ImageFormats;
import org.apache.commons.imaging.ImagingParameters;
/**
@@ -23,4 +24,7 @@ import org.apache.commons.imaging.ImagingParameters;
*/
public class RgbeImagingParameters extends ImagingParameters {
+ public RgbeImagingParameters() {
+ setImageFormat(ImageFormats.RGBE);
+ }
}
diff --git a/src/main/java/org/apache/commons/imaging/formats/tiff/TiffImageParser.java b/src/main/java/org/apache/commons/imaging/formats/tiff/TiffImageParser.java
index 308362a..ee2c7f4 100644
--- a/src/main/java/org/apache/commons/imaging/formats/tiff/TiffImageParser.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/TiffImageParser.java
@@ -47,6 +47,7 @@ import org.apache.commons.imaging.ImageWriteException;
import org.apache.commons.imaging.common.ImageBuilder;
import org.apache.commons.imaging.common.ImageMetadata;
import org.apache.commons.imaging.common.XmpEmbeddable;
+import org.apache.commons.imaging.common.XmpImagingParameters;
import org.apache.commons.imaging.common.bytesource.ByteSource;
import org.apache.commons.imaging.formats.tiff.TiffDirectory.ImageDataElement;
import org.apache.commons.imaging.formats.tiff.constants.TiffEpTagConstants;
@@ -63,7 +64,7 @@ import org.apache.commons.imaging.formats.tiff.photometricinterpreters.Photometr
import org.apache.commons.imaging.formats.tiff.photometricinterpreters.PhotometricInterpreterYCbCr;
import org.apache.commons.imaging.formats.tiff.write.TiffImageWriterLossy;
-public class TiffImageParser extends ImageParser<TiffImagingParameters> implements XmpEmbeddable<TiffImagingParameters> {
+public class TiffImageParser extends ImageParser<TiffImagingParameters> implements XmpEmbeddable {
private static final String DEFAULT_EXTENSION = ".tif";
private static final String[] ACCEPTED_EXTENSIONS = { ".tif", ".tiff", };
@@ -91,9 +92,10 @@ public class TiffImageParser extends ImageParser<TiffImagingParameters> implemen
@Override
public byte[] getICCProfileBytes(final ByteSource byteSource, final TiffImagingParameters params)
throws ImageReadException, IOException {
+
final FormatCompliance formatCompliance = FormatCompliance.getDefault();
- final TiffContents contents = new TiffReader(isStrict(params)).readFirstDirectory(
- byteSource, params, false, formatCompliance);
+ final TiffContents contents = new TiffReader(params != null ? params.isStrict() : false).readFirstDirectory(
+ byteSource, false, formatCompliance);
final TiffDirectory directory = contents.directories.get(0);
return directory.getFieldValue(TiffEpTagConstants.EXIF_TAG_INTER_COLOR_PROFILE,
@@ -104,8 +106,8 @@ public class TiffImageParser extends ImageParser<TiffImagingParameters> implemen
public Dimension getImageSize(final ByteSource byteSource, final TiffImagingParameters params)
throws ImageReadException, IOException {
final FormatCompliance formatCompliance = FormatCompliance.getDefault();
- final TiffContents contents = new TiffReader(isStrict(params)).readFirstDirectory(
- byteSource, params, false, formatCompliance);
+ final TiffContents contents = new TiffReader(params != null ? params.isStrict() : false)
+ .readFirstDirectory(byteSource, false, formatCompliance);
final TiffDirectory directory = contents.directories.get(0);
final TiffField widthField = directory.findField(
@@ -124,12 +126,14 @@ public class TiffImageParser extends ImageParser<TiffImagingParameters> implemen
}
@Override
- public ImageMetadata getMetadata(final ByteSource byteSource, final TiffImagingParameters params)
+ public ImageMetadata getMetadata(final ByteSource byteSource, TiffImagingParameters params)
throws ImageReadException, IOException {
+ if (params == null) {
+ params = new TiffImagingParameters();
+ }
final FormatCompliance formatCompliance = FormatCompliance.getDefault();
final TiffReader tiffReader = new TiffReader(params.isStrict());
- final TiffContents contents = tiffReader.readContents(byteSource, params,
- formatCompliance);
+ final TiffContents contents = tiffReader.readContents(byteSource, params, formatCompliance);
final List<TiffDirectory> directories = contents.directories;
@@ -155,7 +159,7 @@ public class TiffImageParser extends ImageParser<TiffImagingParameters> implemen
public ImageInfo getImageInfo(final ByteSource byteSource, final TiffImagingParameters params)
throws ImageReadException, IOException {
final FormatCompliance formatCompliance = FormatCompliance.getDefault();
- final TiffContents contents = new TiffReader(isStrict(params)).readDirectories(
+ final TiffContents contents = new TiffReader(params != null ? params.isStrict() : false).readDirectories(
byteSource, false, formatCompliance);
final TiffDirectory directory = contents.directories.get(0);
@@ -309,7 +313,7 @@ public class TiffImageParser extends ImageParser<TiffImagingParameters> implemen
}
@Override
- public String getXmpXml(final ByteSource byteSource, final TiffImagingParameters params)
+ public String getXmpXml(final ByteSource byteSource, final XmpImagingParameters params)
throws ImageReadException, IOException {
final FormatCompliance formatCompliance = FormatCompliance.getDefault();
final TiffContents contents = new TiffReader(isStrict(params)).readDirectories(
@@ -396,7 +400,7 @@ public class TiffImageParser extends ImageParser<TiffImagingParameters> implemen
public List<byte[]> collectRawImageData(final ByteSource byteSource, final TiffImagingParameters params)
throws ImageReadException, IOException {
final FormatCompliance formatCompliance = FormatCompliance.getDefault();
- final TiffContents contents = new TiffReader(params.isStrict()).readDirectories(
+ final TiffContents contents = new TiffReader(params != null ? params.isStrict() : false).readDirectories(
byteSource, true, formatCompliance);
final List<byte[]> result = new ArrayList<>();
@@ -452,12 +456,14 @@ public class TiffImageParser extends ImageParser<TiffImagingParameters> implemen
* access operation.
*/
@Override
- public BufferedImage getBufferedImage(final ByteSource byteSource, final TiffImagingParameters params)
+ public BufferedImage getBufferedImage(final ByteSource byteSource, TiffImagingParameters params)
throws ImageReadException, IOException {
+ if (params == null) {
+ params = new TiffImagingParameters();
+ }
final FormatCompliance formatCompliance = FormatCompliance.getDefault();
- final TiffReader reader = new TiffReader(isStrict(params));
- final TiffContents contents = reader.readFirstDirectory(byteSource, params,
- true, formatCompliance);
+ final TiffReader reader = new TiffReader(params.isStrict());
+ final TiffContents contents = reader.readFirstDirectory(byteSource, true, formatCompliance);
final ByteOrder byteOrder = reader.getByteOrder();
final TiffDirectory directory = contents.directories.get(0);
final BufferedImage result = directory.getTiffImage(byteOrder, params);
@@ -751,8 +757,11 @@ public class TiffImageParser extends ImageParser<TiffImagingParameters> implemen
}
@Override
- public void writeImage(final BufferedImage src, final OutputStream os, final TiffImagingParameters params)
+ public void writeImage(final BufferedImage src, final OutputStream os, TiffImagingParameters params)
throws ImageWriteException, IOException {
+ if (params == null) {
+ params = new TiffImagingParameters();
+ }
new TiffImageWriterLossy().writeImage(src, os, params);
}
diff --git a/src/main/java/org/apache/commons/imaging/formats/tiff/TiffImagingParameters.java b/src/main/java/org/apache/commons/imaging/formats/tiff/TiffImagingParameters.java
index b61bfde..54c0047 100644
--- a/src/main/java/org/apache/commons/imaging/formats/tiff/TiffImagingParameters.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/TiffImagingParameters.java
@@ -15,6 +15,7 @@
package org.apache.commons.imaging.formats.tiff;
+import org.apache.commons.imaging.ImageFormats;
import org.apache.commons.imaging.common.XmpImagingParameters;
import org.apache.commons.imaging.formats.tiff.photometricinterpreters.PhotometricInterpreter;
import org.apache.commons.imaging.formats.tiff.write.TiffOutputSet;
@@ -98,6 +99,10 @@ public class TiffImagingParameters extends XmpImagingParameters {
*/
private Integer t6Options = null;
+ public TiffImagingParameters() {
+ setImageFormat(ImageFormats.TIFF);
+ }
+
public boolean isReadThumbnails() {
return readThumbnails;
}
diff --git a/src/main/java/org/apache/commons/imaging/formats/tiff/TiffReader.java b/src/main/java/org/apache/commons/imaging/formats/tiff/TiffReader.java
index b312032..8bca029 100644
--- a/src/main/java/org/apache/commons/imaging/formats/tiff/TiffReader.java
+++ b/src/main/java/org/apache/commons/imaging/formats/tiff/TiffReader.java
@@ -288,7 +288,7 @@ public class TiffReader extends BinaryFileParser {
private final boolean readThumbnails;
Collector() {
- this(null);
+ this(new TiffImagingParameters());
}
Collector(final TiffImagingParameters params) {
@@ -367,11 +367,10 @@ public class TiffReader extends BinaryFileParser {
// }
// }
- public TiffContents readFirstDirectory(final ByteSource byteSource, final TiffImagingParameters params,
- final boolean readImageData, final FormatCompliance formatCompliance)
+ public TiffContents readFirstDirectory(final ByteSource byteSource, final boolean readImageData, final FormatCompliance formatCompliance)
throws ImageReadException, IOException {
final Collector collector = new FirstDirectoryCollector(readImageData);
- read(byteSource, params, formatCompliance, collector);
+ read(byteSource, formatCompliance, collector);
final TiffContents contents = collector.getContents();
if (contents.directories.isEmpty()) {
throw new ImageReadException(
@@ -400,14 +399,12 @@ public class TiffReader extends BinaryFileParser {
IOException {
final Collector collector = new Collector(params);
- read(byteSource, params, formatCompliance, collector);
+ read(byteSource, formatCompliance, collector);
return collector.getContents();
}
- public void read(final ByteSource byteSource, final TiffImagingParameters params,
- final FormatCompliance formatCompliance, final Listener listener)
+ public void read(final ByteSource byteSource, final FormatCompliance formatCompliance, final Listener listener)
throws ImageReadException, IOException {
- // TiffContents contents =
readDirectories(byteSource, formatCompliance, listener);
}
diff --git a/src/main/java/org/apache/commons/imaging/formats/wbmp/WbmpImagingParameters.java b/src/main/java/org/apache/commons/imaging/formats/wbmp/WbmpImagingParameters.java
index 00af50d..d48c463 100644
--- a/src/main/java/org/apache/commons/imaging/formats/wbmp/WbmpImagingParameters.java
+++ b/src/main/java/org/apache/commons/imaging/formats/wbmp/WbmpImagingParameters.java
@@ -15,6 +15,7 @@
package org.apache.commons.imaging.formats.wbmp;
+import org.apache.commons.imaging.ImageFormats;
import org.apache.commons.imaging.ImagingParameters;
/**
@@ -23,4 +24,7 @@ import org.apache.commons.imaging.ImagingParameters;
*/
public class WbmpImagingParameters extends ImagingParameters {
+ public WbmpImagingParameters() {
+ setImageFormat(ImageFormats.WBMP);
+ }
}
diff --git a/src/main/java/org/apache/commons/imaging/formats/xbm/XbmImagingParameters.java b/src/main/java/org/apache/commons/imaging/formats/xbm/XbmImagingParameters.java
index a86d539..dd96268 100644
--- a/src/main/java/org/apache/commons/imaging/formats/xbm/XbmImagingParameters.java
+++ b/src/main/java/org/apache/commons/imaging/formats/xbm/XbmImagingParameters.java
@@ -15,6 +15,7 @@
package org.apache.commons.imaging.formats.xbm;
+import org.apache.commons.imaging.ImageFormats;
import org.apache.commons.imaging.ImagingParameters;
/**
@@ -23,4 +24,7 @@ import org.apache.commons.imaging.ImagingParameters;
*/
public class XbmImagingParameters extends ImagingParameters {
+ public XbmImagingParameters() {
+ setImageFormat(ImageFormats.XBM);
+ }
}
diff --git a/src/main/java/org/apache/commons/imaging/formats/xpm/XpmImagingParameters.java b/src/main/java/org/apache/commons/imaging/formats/xpm/XpmImagingParameters.java
index 36be857..f47c83c 100644
--- a/src/main/java/org/apache/commons/imaging/formats/xpm/XpmImagingParameters.java
+++ b/src/main/java/org/apache/commons/imaging/formats/xpm/XpmImagingParameters.java
@@ -14,10 +14,17 @@
package org.apache.commons.imaging.formats.xpm;
+import org.apache.commons.imaging.ImageFormats;
import org.apache.commons.imaging.ImagingParameters;
/**
* Xpm format parameters.
* @since 1.0-alpha3
*/
-public class XpmImagingParameters extends ImagingParameters {}
+public class XpmImagingParameters extends ImagingParameters {
+
+ public XpmImagingParameters() {
+ setImageFormat(ImageFormats.XPM);
+ }
+
+}