Я пытаюсь сжать изображение в Java с следующим фрагментом кодаJPEGImageWriteParam бросает ClassCastException
ImageWriter writer = (ImageWriter) ImageIO.getImageWritersByMIMEType("image/jpeg").next();
JPEGImageWriteParam param = (JPEGImageWriteParam) writer.getDefaultWriteParam();
param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
param.setCompressionType("JPEG");
param.setCompressionQuality(0.2f);
param.setProgressiveMode(ImageWriteParam.MODE_DEFAULT);
writer.setOutput(ImageIO.createImageOutputStream(outputStream));
writer.write(null, new IIOImage(resizedImg, null, null), param);
Второй линией JPEGImageWriteParam param = (JPEGImageWriteParam) writer.getDefaultWriteParam();
бросает ClassCastException
.
И если я изменю его на ImageWriteParam param = writer.getDefaultWriteParam();
, он выдает UnsupportedOperationException
для линии param.setProgressiveMode(ImageWriteParam.MODE_DEFAULT);
.
Заранее спасибо ...
благодарит за немедленный ответ. Но можете ли вы уточнить, что нужно передать здесь? New JPEGImageWriteParam («?») '@Sanjeev – Muzakkir
вам нужно передать объект класса java.util.Locale .. например, вы можете передать Locale.US, если вы живете в Соединенных Штатах. – Sanjeev
или вы можете пройти Locale.getDefault(), который будет выбирать по умолчанию в соответствии с вашими настройками времени выполнения. – Sanjeev