Я хочу уменьшить размер изображения в формате 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 я установил CompressQuality для jpg, но я не могу получить исходное изображение CompressQuality, и новое изображение, которое я получаю, иногда больше, чем оригиналы.