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 12dd0f893d053f9a5e13cbad001999b2bf89dcd7 Author: Gary Gregory <garydgreg...@gmail.com> AuthorDate: Tue May 16 10:36:10 2023 -0400 Encapsulate PngChunkPhys --- .../commons/imaging/formats/png/PngImageParser.java | 10 +++++----- .../imaging/formats/png/chunks/PngChunkPhys.java | 21 ++++++++++++++++----- 2 files changed, 21 insertions(+), 10 deletions(-) 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 3871b9f2..021b7e0e 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 @@ -484,13 +484,13 @@ public class PngImageParser extends ImageParser<PngImagingParameters> implement // System.out.println("\t" + "pngChunkpHYs.PixelsPerUnitXAxis: " + // pngChunkpHYs.PixelsPerUnitXAxis ); // } - if ((pngChunkpHYs != null) && (pngChunkpHYs.unitSpecifier == 1)) { // meters + if ((pngChunkpHYs != null) && (pngChunkpHYs.getUnitSpecifier() == 1)) { // meters final double metersPerInch = 0.0254; - physicalWidthDpi = (int) Math.round(pngChunkpHYs.pixelsPerUnitXAxis * metersPerInch); - physicalWidthInch = (float) (width / (pngChunkpHYs.pixelsPerUnitXAxis * metersPerInch)); - physicalHeightDpi = (int) Math.round(pngChunkpHYs.pixelsPerUnitYAxis * metersPerInch); - physicalHeightInch = (float) (height / (pngChunkpHYs.pixelsPerUnitYAxis * metersPerInch)); + physicalWidthDpi = (int) Math.round(pngChunkpHYs.getPixelsPerUnitXAxis() * metersPerInch); + physicalWidthInch = (float) (width / (pngChunkpHYs.getPixelsPerUnitXAxis() * metersPerInch)); + physicalHeightDpi = (int) Math.round(pngChunkpHYs.getPixelsPerUnitYAxis() * metersPerInch); + physicalHeightInch = (float) (height / (pngChunkpHYs.getPixelsPerUnitYAxis() * metersPerInch)); } boolean usesPalette = false; diff --git a/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkPhys.java b/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkPhys.java index 31b15be7..cee8071b 100644 --- a/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkPhys.java +++ b/src/main/java/org/apache/commons/imaging/formats/png/chunks/PngChunkPhys.java @@ -23,18 +23,29 @@ import java.io.ByteArrayInputStream; import java.io.IOException; public class PngChunkPhys extends PngChunk { - public final int pixelsPerUnitXAxis; - public final int pixelsPerUnitYAxis; - public final int unitSpecifier; + + private final int pixelsPerUnitXAxis; + private final int pixelsPerUnitYAxis; + private final int unitSpecifier; public PngChunkPhys(final int length, final int chunkType, final int crc, final byte[] bytes) throws IOException { super(length, chunkType, crc, bytes); - final ByteArrayInputStream is = new ByteArrayInputStream(bytes); - pixelsPerUnitXAxis = read4Bytes("PixelsPerUnitXAxis", is, "Not a Valid PNG File: pHYs Corrupt", getByteOrder()); pixelsPerUnitYAxis = read4Bytes("PixelsPerUnitYAxis", is, "Not a Valid PNG File: pHYs Corrupt", getByteOrder()); unitSpecifier = readByte("Unit specifier", is, "Not a Valid PNG File: pHYs Corrupt"); } + public int getPixelsPerUnitXAxis() { + return pixelsPerUnitXAxis; + } + + public int getPixelsPerUnitYAxis() { + return pixelsPerUnitYAxis; + } + + public int getUnitSpecifier() { + return unitSpecifier; + } + }