Я хочу уменьшить размер изображения в формате jpeg (3M до 1M) с помощью Java без масштабирования (без изменения высоты и ширины изображения). На этом сайте я не смог найти решение. Ниже я попробовал:
1 Использование ImageIO:
BufferedImage image = ImageIO.read(inputFile);
ImageWriter writer = null;
Iterator iter = ImageIO.getImageWritersByFormatName("jpg");
if(iter.hasNext()){
writer = (ImageWriter) iter.next();
}
ImageOutputStream ios = ImageIO.createImageOutputStream(outputFile);
writer.setOutput(ios);
ImageWriteParam iwParam = writer.getDefaultWriteParam();
iwParam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
iwParam.setCompressionQuality(compressionQuality);
writer.write(null, new IIOImage(image, null, null ), iwParam);
Для решения 1 я установил сжатие качества для jpg, но не могу получить оригинальное изображение обжать качество, а получаемый мной новый образ иногда больше оригиналов.