diff --git a/jme3-desktop/src/main/java/com/jme3/system/JmeDesktopSystem.java b/jme3-desktop/src/main/java/com/jme3/system/JmeDesktopSystem.java index d02b5d21cd..1ba8cb9666 100644 --- a/jme3-desktop/src/main/java/com/jme3/system/JmeDesktopSystem.java +++ b/jme3-desktop/src/main/java/com/jme3/system/JmeDesktopSystem.java @@ -90,20 +90,22 @@ private static BufferedImage verticalFlip(BufferedImage original) { @Override public void writeImageFile(OutputStream outStream, String format, ByteBuffer imageData, int width, int height) throws IOException { - BufferedImage awtImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_BGR); - Screenshots.convertScreenShot2(imageData.asIntBuffer(), awtImage); - ImageWriter writer = ImageIO.getImageWritersByFormatName(format).next(); ImageWriteParam writeParam = writer.getDefaultWriteParam(); - + + BufferedImage awtImage; if (format.equals("jpg")) { JPEGImageWriteParam jpegParam = (JPEGImageWriteParam) writeParam; jpegParam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); jpegParam.setCompressionQuality(0.95f); + awtImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_BGR); + Screenshots.convertScreenShot2(imageData.asIntBuffer(), awtImage); + awtImage = verticalFlip(awtImage); + } else { + awtImage = new BufferedImage(width, height, BufferedImage.TYPE_4BYTE_ABGR); + Screenshots.convertScreenShot(imageData, awtImage); } - awtImage = verticalFlip(awtImage); - ImageOutputStream imgOut = new MemoryCacheImageOutputStream(outStream); writer.setOutput(imgOut); IIOImage outputImage = new IIOImage(awtImage, null, null);