Регулировка уровня сжатия JPEG в Java с помощью ImageIO
В сфере манипулирования изображениями контроль уровня сжатия файлов JPEG имеет важное значение для балансировки качество изображения и размер файла. Хотя уровень сжатия по умолчанию для ImageIO не всегда может быть достаточным, в этой статье рассматривается, как точно настроить этот параметр.
Непосредственное получение ImageWriter
Прямой подход включает в себя получение ImageWriter для формата JPEG:
ImageWriter jpgWriter = ImageIO.getImageWritersByFormatName("jpg").next();
Установка параметров явного сжатия
Чтобы явно задать уровень сжатия, используйте класс ImageWriteParam:
ImageWriteParam jpgWriteParam = jpgWriter.getDefaultWriteParam();
jpgWriteParam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
Регулировка качества сжатия
Желаемый уровень сжатия указывается в виде числа с плавающей точкой между 0,0f (максимальное сжатие, минимальное качество) и 1.0f (минимальное сжатие, максимальное качество):
jpgWriteParam.setCompressionQuality(0.7f); // Set a compression quality of 70%
Запись вывода
Для вывода изображения ImageWriter требуется ImageOutputStream:
ImageOutputStream outputStream = createOutputStream(); // Generate an OutputStream (e.g., a FileImageOutputStream)
jpgWriter.setOutput(outputStream);
Финализация
После записи изображения ImageWriter должен быть удален:
jpgWriter.dispose();
В заключение, напрямую получая ImageWriter и устанавливая явные параметры сжатия, вы получаете точный контроль над уровнем сжатия JPEG, оптимизируя качество изображения и размер файла в соответствии с вашими конкретными требованиями.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3