Изменение размера изображения Java, сохранение соотношения сторон
У меня есть изображение, которое я изменяю размер:
<code>if((width != null) || (height != null)) { try{ // scale image on disk BufferedImage originalImage = ImageIO.read(file); int type = originalImage.getType() == 0? BufferedImage.TYPE_INT_ARGB : originalImage.getType(); BufferedImage resizeImageJpg = resizeImage(originalImage, type, 200, 200); ImageIO.write(resizeImageJpg, "jpg", file); } catch(IOException e) { System.out.println(e.getMessage()); } } </code>
Вот как я изменяю размер изображения:
<code>private static BufferedImage resizeImage(BufferedImage originalImage, int type, Integer img_width, Integer img_height) { BufferedImage resizedImage = new BufferedImage(img_width, img_height, type); Graphics2D g = resizedImage.createGraphics(); g.drawImage(originalImage, 0, 0, img_width, img_height, null); g.dispose(); return resizedImage; } </code>
Теперь проблема в том, что мне также нужно поддерживать соотношение сторон. То есть мне нужно, чтобы новое изображение 200/200 содержало новое масштабированное изображение. Что-то вроде этого:
Я попробовал некоторые вещи, но они не сработали, как ожидалось. Любая помощь приветствуется. Большое спасибо.