2012-03-21 5 views
0

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

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

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?. Некоторый пример будет действительно оценен.

Спасибо

+2

Просьба пояснить: пытаетесь ли вы уменьшить размер отображаемого изображения (как указано в заголовке этого вопроса, и если да, что не так с кодом, который у вас есть) или размером файла (как вы заявляете на одной из своих последних строк)? –

+0

Уменьшить размер файла – Kris

ответ

1

Как вариант - image magic - у него также есть некоторые удобства для Java, поэтому вы можете легко использовать его.

0

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

1

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

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

Смежные вопросы