как сжать изображение PNG с помощью Java

Привет я хотел бы знать, существует ли какой-либо путь в Java для сокращения размера изображения (используйте любой вид сжатия), который был загружен как BufferedImage и будет сохраненным как PNG.

Возможно, своего рода png imagewriteparam? Я ничто не нашел полезным, таким образом, я застреваю.

вот образец, как образ загружается и сохраняется

public static BufferedImage load(String imageUrl) {         
    Image image = new ImageIcon(imageUrl).getImage();
    bufferedImage = new BufferedImage(image.getWidth(null),
                                                    image.getHeight(null),
                                                    BufferedImage.TYPE_INT_ARGB);
    Graphics2D g2D = bufferedImage.createGraphics();
    g2D.drawImage(image, 0, 0, null);
    return bufferedImage;
}

public static void storeImageAsPng(BufferedImage image, String imageUrl) throws IOException {
    ImageIO.write(image, "png", new File(imageUrl));
}
14
задан ubernoob 27 April 2010 в 12:55
поделиться

2 ответа

Обратите внимание на класс ImageWriterParam в том же пакете, что и класс ImageIO . Здесь упоминается сжатие.

https://docs.oracle.com/javase/7/docs/api/javax/imageio/ImageWriteParam.html

Также посмотрите пример на http://exampledepot.com/egs/ javax.imageio / JpegWrite.html и посмотрите, хорошо ли он переводится для файлов PNG.

0
ответ дан 1 December 2019 в 16:39
поделиться

Если будет сохранен как PNG , сжатие будет выполнено на этом этапе. PNG имеет алгоритм сжатия без потерь (в основном прогнозирование с последующим сжатием lempel-ziv) с несколькими настраиваемыми параметрами (типы « filter ») и не сильно влияет на степень сжатия - в целом оптимальным будет значение по умолчанию.

3
ответ дан 1 December 2019 в 16:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: