You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2023/12/23 20:28:29 UTC
(commons-imaging) 01/02: Refactor constant
This is an automated email from the ASF dual-hosted git repository.
ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-imaging.git
commit bed82950e570c4723f8015e1d635e67bf5053a7b
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Sat Dec 23 15:18:30 2023 -0500
Refactor constant
- Make defensive copies of arrays
- Format tweaks
---
.../org/apache/commons/imaging/ImageFormats.java | 29 +++++++++++++++++++---
.../imaging/formats/pnm/PnmImageParser.java | 29 ++++++++++++++++------
2 files changed, 47 insertions(+), 11 deletions(-)
diff --git a/src/main/java/org/apache/commons/imaging/ImageFormats.java b/src/main/java/org/apache/commons/imaging/ImageFormats.java
index dbe462ba..6fa3beb0 100644
--- a/src/main/java/org/apache/commons/imaging/ImageFormats.java
+++ b/src/main/java/org/apache/commons/imaging/ImageFormats.java
@@ -17,12 +17,35 @@
package org.apache.commons.imaging;
/**
- * Enum of known image formats.
+ * Enumerates known image formats.
*/
public enum ImageFormats implements ImageFormat {
- UNKNOWN(), BMP("bmp", "dib"), DCX("dcx"), GIF("gif"), ICNS("icns"), ICO("ico"), JBIG2(), JPEG("jpg", "jpeg"), PAM("pam"), PSD("psd"), PBM("pbm"),
- PGM("pgm"), PNM("pnm"), PPM("ppm"), PCX("pcx", "pcc"), PNG("png"), RGBE("hdr", "pic"), TGA(), TIFF("tif", "tiff"), WBMP("wbmp"), WEBP("webp"), XBM("xbm"),
+
+ // @formatter:off
+ UNKNOWN(),
+ BMP("bmp", "dib"),
+ DCX("dcx"),
+ GIF("gif"),
+ ICNS("icns"),
+ ICO("ico"),
+ JBIG2(),
+ JPEG("jpg", "jpeg"),
+ PAM("pam"),
+ PSD("psd"),
+ PBM("pbm"),
+ PGM("pgm"),
+ PNM("pnm"),
+ PPM("ppm"),
+ PCX("pcx", "pcc"),
+ PNG("png"),
+ RGBE("hdr", "pic"),
+ TGA(),
+ TIFF("tif", "tiff"),
+ WBMP("wbmp"),
+ WEBP("webp"),
+ XBM("xbm"),
XPM("xpm");
+ // @formatter:on
private final String[] extensions;
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 b40c116e..c3aaa235 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
@@ -28,6 +28,7 @@ import java.nio.ByteOrder;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;
+import java.util.stream.Stream;
import org.apache.commons.imaging.AbstractImageParser;
import org.apache.commons.imaging.ImageFormat;
@@ -41,10 +42,23 @@ import org.apache.commons.imaging.palette.PaletteFactory;
public class PnmImageParser extends AbstractImageParser<PnmImagingParameters> {
+ private static final int DPI = 72;
+ private static final ImageFormat[] IMAGE_FORMATS;
private static final String DEFAULT_EXTENSION = ImageFormats.PNM.getDefaultExtension();
- private static final String[] ACCEPTED_EXTENSIONS = { ImageFormats.PAM.getDefaultExtension(), ImageFormats.PBM.getDefaultExtension(),
- ImageFormats.PGM.getDefaultExtension(), ImageFormats.PNM.getDefaultExtension(), ImageFormats.PPM.getDefaultExtension() };
-
+ private static final String[] ACCEPTED_EXTENSIONS;
+
+ static {
+ IMAGE_FORMATS = new ImageFormat[] {
+ // @formatter:off
+ ImageFormats.PAM,
+ ImageFormats.PBM,
+ ImageFormats.PGM,
+ ImageFormats.PNM,
+ ImageFormats.PPM
+ // @formatter:on
+ };
+ ACCEPTED_EXTENSIONS = Stream.of(IMAGE_FORMATS).map(ImageFormat::getDefaultExtension).toArray(String[]::new);
+ }
public PnmImageParser() {
super(ByteOrder.LITTLE_ENDIAN);
}
@@ -67,12 +81,12 @@ public class PnmImageParser extends AbstractImageParser<PnmImagingParameters> {
@Override
protected String[] getAcceptedExtensions() {
- return ACCEPTED_EXTENSIONS;
+ return ACCEPTED_EXTENSIONS.clone();
}
@Override
protected ImageFormat[] getAcceptedTypes() {
- return new ImageFormat[] { ImageFormats.PBM, ImageFormats.PGM, ImageFormats.PPM, ImageFormats.PNM, ImageFormats.PAM };
+ return IMAGE_FORMATS.clone();
}
@Override
@@ -121,9 +135,9 @@ public class PnmImageParser extends AbstractImageParser<PnmImagingParameters> {
// boolean progressive = (fPNGChunkIHDR.InterlaceMethod != 0);
//
- final int physicalWidthDpi = 72;
+ final int physicalWidthDpi = DPI;
final float physicalWidthInch = (float) ((double) info.width / (double) physicalWidthDpi);
- final int physicalHeightDpi = 72;
+ final int physicalHeightDpi = DPI;
final float physicalHeightInch = (float) ((double) info.height / (double) physicalHeightDpi);
final String formatDetails = info.getImageTypeDescription();
@@ -141,7 +155,6 @@ public class PnmImageParser extends AbstractImageParser<PnmImagingParameters> {
@Override
public Dimension getImageSize(final ByteSource byteSource, final PnmImagingParameters params) throws ImagingException, IOException {
final AbstractFileInfo info = readHeader(byteSource);
-
return new Dimension(info.width, info.height);
}