mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-15 18:28:00 +00:00
Merge branch 'master' into 'master'
[Desktop] update image reader See merge request core-developers/forge!4618
This commit is contained in:
@@ -178,6 +178,11 @@
|
|||||||
<artifactId>mp3-wav</artifactId>
|
<artifactId>mp3-wav</artifactId>
|
||||||
<version>1.0.3</version>
|
<version>1.0.3</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.twelvemonkeys.imageio</groupId>
|
||||||
|
<artifactId>imageio-jpeg</artifactId>
|
||||||
|
<version>3.7.0</version>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<profiles>
|
<profiles>
|
||||||
|
|||||||
@@ -5,14 +5,13 @@ import java.awt.image.BufferedImage;
|
|||||||
import java.awt.image.ColorConvertOp;
|
import java.awt.image.ColorConvertOp;
|
||||||
import java.awt.image.Raster;
|
import java.awt.image.Raster;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.Iterator;
|
|
||||||
|
|
||||||
import javax.imageio.ImageIO;
|
import javax.imageio.ImageIO;
|
||||||
import javax.imageio.ImageReader;
|
|
||||||
import javax.imageio.stream.ImageInputStream;
|
import javax.imageio.stream.ImageInputStream;
|
||||||
|
|
||||||
import com.google.common.cache.CacheLoader;
|
import com.google.common.cache.CacheLoader;
|
||||||
|
|
||||||
|
import com.twelvemonkeys.imageio.ImageReaderBase;
|
||||||
import forge.gui.error.BugReporter;
|
import forge.gui.error.BugReporter;
|
||||||
import forge.localinstance.properties.ForgePreferences;
|
import forge.localinstance.properties.ForgePreferences;
|
||||||
import forge.model.FModel;
|
import forge.model.FModel;
|
||||||
@@ -35,17 +34,9 @@ final class ImageLoader extends CacheLoader<String, BufferedImage> {
|
|||||||
try {
|
try {
|
||||||
return ImageIO.read(file);
|
return ImageIO.read(file);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
//Use TwelveMonkeys to support JPEG "flavors"
|
||||||
|
ImageReaderBase reader = null;
|
||||||
try {
|
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;
|
ImageInputStream input;
|
||||||
input = ImageIO.createImageInputStream(file);
|
input = ImageIO.createImageInputStream(file);
|
||||||
if (input == null) {
|
if (input == null) {
|
||||||
@@ -59,10 +50,12 @@ final class ImageLoader extends CacheLoader<String, BufferedImage> {
|
|||||||
BufferedImage bi = new BufferedImage(raster.getWidth(), raster.getHeight(), BufferedImage.TYPE_4BYTE_ABGR);
|
BufferedImage bi = new BufferedImage(raster.getWidth(), raster.getHeight(), BufferedImage.TYPE_4BYTE_ABGR);
|
||||||
//Fill the new image with the old raster
|
//Fill the new image with the old raster
|
||||||
bi.getRaster().setRect(raster);
|
bi.getRaster().setRect(raster);
|
||||||
BufferedImage colorConverted = colorConvert(bi);
|
return colorConvert(bi);
|
||||||
return colorConverted;
|
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
BugReporter.reportException(ex, "Could not read image file " + file.getAbsolutePath() + " ");
|
BugReporter.reportException(ex, "Could not read image file " + file.getAbsolutePath() + " ");
|
||||||
|
} finally {
|
||||||
|
if (reader != null)
|
||||||
|
reader.dispose();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user