Изменить размер изображения до фиксированного размера - PullRequest
0 голосов
/ 30 апреля 2011

Мне нужна логика для изменения размера изображения, чтобы оно всегда было размером 320X240 или меньше и поддерживало соотношение сторон.

Ответы [ 2 ]

0 голосов
/ 03 января 2013

Посмотрите на ImgScalr , библиотека для Java.Имеет несколько настроек качества и скорости для конвертации, а также автоматически масштабирует их для вас.

BufferedImage sourceImage = ImageIO.read(new File(sourceFile));
BufferedImage destImage = Scalr.resize(sourceImage, Scalr.Method.ULTRA_QUALITY, 320, 240, Scalr.OP_ANTIALIAS);
0 голосов
/ 30 апреля 2011
1) determine which side of the image is the larger one
2) if its width, calc: faktor = 320/width, else faktor = 240/height;
3) downscale the image by size.x *faktor, size.y *faktor.

пример:

Дано: изображение имеет 1024x640

1) its wider than high.
2) faktor = 320 / 1024 -> 0.3125
3) 1024 * 0.3125 = 320 (huh!)     
   640 * 0.3125 = 200.
...