次のコードを使用して画像のサイズを変更しています。一方のパラメーターを負に設定することにより、関数を使用して元の画像と同じアスペクト比を簡単に取得できるためgetScaledInstance
、他のパラメーターを自動的に維持してアスペクト比を取得できます。しかし、私が直面している問題はBufferedImage
.次のコードを実行した結果として取得できます。BufferedImage
他に選択肢がないため、800x600 に設定しました。以前の質問は、アスペクト比を損なうことなく画像のサイズを変更することでした。
public class ResizeImage {
public static void main(String[] args) throws IOException {
BufferedImage img1 = new BufferedImage(800, 600,
BufferedImage.TYPE_INT_RGB);
img1.createGraphics()
.drawImage(
ImageIO.read(
new File(
"C:/Users/Public/Pictures/Sample Pictures/Desert.jpg"))
.getScaledInstance(500, -1, Image.SCALE_SMOOTH),
0, 0, null);
ImageIO.write(img1, "jpg", new File(
"C:/Users/Public/Pictures/Sample Pictures/test/Desert.jpg"));
}
}