Java-Image Größe ändern, Seitenverhältnis beibehalten
Ich habe ein Bild, dessen Größe ich verändere:
<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>
So verkleinere ich das Bild:
<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>
Jetzt ist das Problem, ich muss auch das Seitenverhältnis beibehalten. Das heißt, ich brauche das neue 200/200-Bild, um das neue skalierte Bild aufzunehmen. Etwas wie das:
Ich habe einige Dinge ausprobiert, aber sie haben nicht wie erwartet funktioniert. Jede Hilfe wird geschätzt. Danke vielmals.