diff --git a/src/changes/changes.xml b/src/changes/changes.xml index aa7220c78..2a7bcbd0a 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -94,6 +94,9 @@ The type attribute can be add,update,fix,remove. Basic WebP Support #254. + + Add option to skip reading GIF metadata #301. + Bump actions/cache #225, #228, #239, #240. 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 662cb8616..4d31aa37a 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 @@ -409,11 +409,7 @@ public byte[] getIccProfileBytes(final ByteSource byteSource, final GifImagingPa @Override public ImageInfo getImageInfo(final ByteSource byteSource, final GifImagingParameters params) throws ImagingException, IOException { - boolean stopReadingBeforeImageData = true; - if (params != null) { - stopReadingBeforeImageData = params.getStopReadingBeforeImageData(); - } - final GifImageContents blocks = readFile(byteSource, stopReadingBeforeImageData); + final GifImageContents blocks = readFile(byteSource, GifImagingParameters.getStopReadingBeforeImageData(params)); final GifHeaderInfo bhi = blocks.gifHeaderInfo; if (bhi == null) { @@ -488,11 +484,7 @@ public Dimension getImageSize(final ByteSource byteSource, final GifImagingParam @Override public ImageMetadata getMetadata(final ByteSource byteSource, final GifImagingParameters params) throws ImagingException, IOException { - boolean stopReadingBeforeImageData = true; - if (params != null) { - stopReadingBeforeImageData = params.getStopReadingBeforeImageData(); - } - final GifImageContents imageContents = readFile(byteSource, stopReadingBeforeImageData); + final GifImageContents imageContents = readFile(byteSource, GifImagingParameters.getStopReadingBeforeImageData(params)); final GifHeaderInfo bhi = imageContents.gifHeaderInfo; if (bhi == 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 1bca589be..c759614cd 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 @@ -25,6 +25,11 @@ * @since 1.0-alpha3 */ public class GifImagingParameters extends XmpImagingParameters { + + public static boolean getStopReadingBeforeImageData(final GifImagingParameters params) { + return params != null && params.getStopReadingBeforeImageData(); + } + private boolean stopReadingBeforeImageData; public boolean getStopReadingBeforeImageData() { diff --git a/src/test/java/org/apache/commons/imaging/formats/gif/GifReadTest.java b/src/test/java/org/apache/commons/imaging/formats/gif/GifReadTest.java index 561fd974d..17978815d 100644 --- a/src/test/java/org/apache/commons/imaging/formats/gif/GifReadTest.java +++ b/src/test/java/org/apache/commons/imaging/formats/gif/GifReadTest.java @@ -146,8 +146,8 @@ public void testMetadata(final File imageFile) throws IOException { final ImageMetadata metadata = Imaging.getMetadata(imageFile); assertNotNull(metadata); assertTrue(metadata instanceof GifImageMetadata); - assertTrue(((GifImageMetadata)metadata).getWidth() > 0); - assertTrue(((GifImageMetadata)metadata).getHeight() > 0); + assertTrue(((GifImageMetadata) metadata).getWidth() > 0); + assertTrue(((GifImageMetadata) metadata).getHeight() > 0); assertNotNull(metadata.getItems()); }