Ошибка с setCompressionType - PullRequest
       52

Ошибка с setCompressionType

2 голосов
/ 02 октября 2011

Кто-нибудь может помочь исправить этот код?

Я работаю с JAI и пытаюсь сжать файл JPG без потерь вот мой код

     `ImageWriter writer= (JPEGImageWriter) ImageIO.getImageWritersByFormatName("jpeg").next();
     javax.imageio.plugins.jpeg.JPEGImageWriteParam param = (JPEGImageWriteParam)                  
     writer.getDefaultWriteParam();
     param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
     param.setCompressionType("JPEG-LOSSLESS");`

В этой части всегда ошибка param.setCompressionType("JPEG-LOSSLESS"); ошибка java.lang.IllegalArgumentException: Unknown compression type! at javax.imageio.ImageWriteParam.setCompressionType(ImageWriteParam.java:1023)

1 Ответ

0 голосов
/ 02 октября 2011

Вы можете использовать только те типы сжатия, которые поддерживаются.Проверьте, какие из них поддерживаются param.getCompressionTypes().

Кроме этого, попробуйте этот код (используя более новый стандарт jpeg без потерь JPEG-LS):

ImageWriter writer = 
    (ImageWriter) ImageIO.getImageWritersByFormatName("jpeg").next();
ImageWriteParam param= writer.getDefaultWriteParam();
param.setCompressionMode(param.MODE_EXPLICIT);
param.setCompressionType("JPEG-LS");
...