Уменьшить размер изображения в Java - PullRequest
0 голосов
/ 21 марта 2012

Я хочу убедиться, что размер изображения в моем приложении не превышает 200x200 пикселей, а размер изображения не превышает 150 кБ. Например, если размер файла изображения превышает 150 кБ, мне нужно сделать его равным 150 кБ. Изображение может быть типа jpeg, png и т. Д.

У меня есть следующий код для изменения размера изображения до заданной ширины и высоты

private BufferedImage resize(BufferedImage img, int newW, int newH) {
        int w = img.getWidth();
        int h = img.getHeight();
        BufferedImage dimg = new BufferedImage(newW, newH, img.getType());
        Graphics2D g = dimg.createGraphics();
        g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
        g.drawImage(img, 0, 0, newW, newH, 0, 0, w, h, null);
        g.dispose();
        return dimg;
    }

Но я не уверен, как уменьшить размер файла до 150 КБ. Как это сделать в Java?. Некоторые примеры будут очень признательны.

Спасибо

Ответы [ 3 ]

1 голос
/ 21 марта 2012

В качестве опции - image magic - в нем также есть несколько удобных оболочек для Java, так что вы можете легко их использовать.

1 голос
/ 21 марта 2012

Имеет ли ваш вопрос какое-либо практическое значение или просто теоретический?

Для изображения размером 200x200 пикселей с глубиной цвета 24 бита без сжатия потребуется 117 КБ. Если вы используете какой-либо разумный кодер JPEG, он также никогда не будет превышать 150 КБ для такого изображения.

0 голосов
/ 21 марта 2012

Вы можете изменить размер изображения только несколько раз, чтобы получить размер файла меньше указанного.

...