X-Git-Url: http://www2.svjatoslav.eu/gitweb/?p=meviz.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fmeviz%2Fhtmlindexer%2Fmetadata%2FfileTypes%2FPicture.java;fp=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fmeviz%2Fhtmlindexer%2Fmetadata%2FfileTypes%2FPicture.java;h=9604211781e43e96558a800bb70e1a0e6a3ce389;hp=1f5b2722a8d9c0d5f9f6a8da1df93d81dfcde38c;hb=7b6389562a67fe6b62c869481e2a303f9cf0f730;hpb=9a96d6cd7fa903f3da1ff8e25d87316db3526678 diff --git a/src/main/java/eu/svjatoslav/meviz/htmlindexer/metadata/fileTypes/Picture.java b/src/main/java/eu/svjatoslav/meviz/htmlindexer/metadata/fileTypes/Picture.java index 1f5b272..9604211 100755 --- a/src/main/java/eu/svjatoslav/meviz/htmlindexer/metadata/fileTypes/Picture.java +++ b/src/main/java/eu/svjatoslav/meviz/htmlindexer/metadata/fileTypes/Picture.java @@ -17,8 +17,7 @@ import eu.svjatoslav.meviz.htmlindexer.ImageFormatError; import eu.svjatoslav.meviz.htmlindexer.Utils; import eu.svjatoslav.meviz.htmlindexer.metadata.Dimension; -import javax.imageio.ImageIO; -import javax.imageio.ImageReader; +import javax.imageio.*; import javax.imageio.stream.FileImageOutputStream; import javax.imageio.stream.ImageInputStream; import javax.imageio.stream.ImageOutputStream; @@ -28,8 +27,10 @@ import java.awt.image.BufferedImage; import java.awt.image.FilteredImageSource; import java.awt.image.ImageFilter; import java.awt.image.ImageProducer; -import java.io.*; +import java.io.File; +import java.io.IOException; import java.util.ArrayList; +import java.util.Iterator; import java.util.List; import static eu.svjatoslav.meviz.htmlindexer.Utils.getBufferedImage; @@ -135,7 +136,6 @@ public class Picture extends AbstractFile { final java.awt.Dimension targetDimensions = getTargetThumbnailDimension( sourceImageDimension, preferredTargetDimensions); - final OutputStream out = new FileOutputStream(outputFile); final Image scaledImage = scaleImage(inputImage, targetDimensions.width, targetDimensions.height); @@ -148,8 +148,19 @@ public class Picture extends AbstractFile { g.drawImage(scaledImage, 0, 0, null); g.dispose(); - ImageIO.write(bufferedImage, "webp", out); - out.close(); + + + ImageOutputStream ios = ImageIO.createImageOutputStream(outputFile); + Iterator iter = ImageIO.getImageWritersByFormatName("webp"); + ImageWriter writer = iter.next(); + ImageWriteParam iwp = writer.getDefaultWriteParam(); + iwp.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); + iwp.setCompressionType("Lossy"); + iwp.setCompressionQuality(0.8f); + + writer.setOutput(ios); + writer.write(null, new IIOImage(bufferedImage,null,null),iwp); + writer.dispose(); } private static void makeGifThumbnail(