Java-如何自动设置img.getScaleInstance()的宽度;?

Java-如何自动设置img.getScaleInstance()的宽度;?,java,resize,height,Java,Resize,Height,如果图像太大,我想调整它的大小,但我希望它保持它的纵横比,我怎么能定义它的高度,让它自动获得它的宽度 ImageIcon image2 = new ImageIcon(image); //Check if image size is more than 200 if(!checking){ Image img = image2.getImage() ; Image newimg = img.getScaledInstance( "What to put here?", 2

如果图像太大,我想调整它的大小,但我希望它保持它的纵横比,我怎么能定义它的高度,让它自动获得它的宽度

ImageIcon image2 = new ImageIcon(image);

//Check if image size is more than 200

if(!checking){
    Image img = image2.getImage() ;  
    Image newimg = img.getScaledInstance( "What to put here?", 200,  java.awt.Image.SCALE_SMOOTH ) ;  
    image2 = new ImageIcon( newimg );
}   

JButton newimage = new JButton(image2);

你应该做一些数学计算。找出高度和旧高度的比率,然后找到新的宽度

double Width=(200/(double)image2.getIconHeight())*image2.getIconWidth();
然后您可以设置宽度

Image newimg = img.getScaledInstance( Width, 200,  java.awt.Image.SCALE_SMOOTH ) ;  

你应该做一些数学计算。找出高度和旧高度的比率,然后找到新的宽度

double Width=(200/(double)image2.getIconHeight())*image2.getIconWidth();
然后您可以设置宽度

Image newimg = img.getScaledInstance( Width, 200,  java.awt.Image.SCALE_SMOOTH ) ;  
抄袭自

如果宽度或高度为负数,则替换一个值以保持原始图像尺寸的纵横比。如果宽度和高度均为负值,则使用原始图像尺寸

所以你可以这样做

img.getScaledInstance(-1, 200,  java.awt.Image.SCALE_SMOOTH ) ;
抄袭自

如果宽度或高度为负数,则替换一个值以保持原始图像尺寸的纵横比。如果宽度和高度均为负值,则使用原始图像尺寸

所以你可以这样做

img.getScaledInstance(-1, 200,  java.awt.Image.SCALE_SMOOTH ) ;

你总是可以通过将旧高度除以新高度(或宽度)来获得比率。你总是可以通过将旧高度除以新高度(或宽度)来获得比率。从来都不知道。这是最好的方法从来都不知道。这是最好的方法哇THX!仍然需要将Width解析为int,就这样!哇,谢谢!仍然需要将Width解析为int,就这样!