diff --git a/forge-gui-desktop/pom.xml b/forge-gui-desktop/pom.xml index 22994326bd5..a3c2a3cc582 100644 --- a/forge-gui-desktop/pom.xml +++ b/forge-gui-desktop/pom.xml @@ -178,6 +178,11 @@ mp3-wav 1.0.3 + + com.twelvemonkeys.imageio + imageio-jpeg + 3.7.0 + diff --git a/forge-gui-desktop/src/main/java/forge/ImageLoader.java b/forge-gui-desktop/src/main/java/forge/ImageLoader.java index 3f60cee722c..148d10bba1a 100644 --- a/forge-gui-desktop/src/main/java/forge/ImageLoader.java +++ b/forge-gui-desktop/src/main/java/forge/ImageLoader.java @@ -5,14 +5,13 @@ import java.awt.image.BufferedImage; import java.awt.image.ColorConvertOp; import java.awt.image.Raster; import java.io.File; -import java.util.Iterator; import javax.imageio.ImageIO; -import javax.imageio.ImageReader; import javax.imageio.stream.ImageInputStream; import com.google.common.cache.CacheLoader; +import com.twelvemonkeys.imageio.ImageReaderBase; import forge.gui.error.BugReporter; import forge.localinstance.properties.ForgePreferences; import forge.model.FModel; @@ -35,17 +34,9 @@ final class ImageLoader extends CacheLoader { try { return ImageIO.read(file); } catch (Exception e) { + //Use TwelveMonkeys to support JPEG "flavors" + ImageReaderBase reader = null; try { - //Find a suitable ImageReader - Iterator readers = ImageIO.getImageReadersByFormatName("JPEG"); - ImageReader reader = null; - while (readers.hasNext()) { - reader = (ImageReader) readers.next(); - if (reader.canReadRaster()) { - break; - } - } - //Stream the image file (the original CMYK image) ImageInputStream input; input = ImageIO.createImageInputStream(file); if (input == null) { @@ -59,10 +50,12 @@ final class ImageLoader extends CacheLoader { BufferedImage bi = new BufferedImage(raster.getWidth(), raster.getHeight(), BufferedImage.TYPE_4BYTE_ABGR); //Fill the new image with the old raster bi.getRaster().setRect(raster); - BufferedImage colorConverted = colorConvert(bi); - return colorConverted; + return colorConvert(bi); } catch (Exception ex) { BugReporter.reportException(ex, "Could not read image file " + file.getAbsolutePath() + " "); + } finally { + if (reader != null) + reader.dispose(); } } }