Java应用中的无限while循环
在我的Java应用程序中,我试图调整图像的大小,直到它符合所需的尺寸,但仍保持其原始比例 以下方法用于调整图像的大小Java应用中的无限while循环,java,loops,while-loop,Java,Loops,While Loop,在我的Java应用程序中,我试图调整图像的大小,直到它符合所需的尺寸,但仍保持其原始比例 以下方法用于调整图像的大小 public BufferedImage ImageScaler(BufferedImage image){ scaledWidth = (int) image.getWidth() / SCALE_FACTOR * 100; scaledHeight = (int) image.getHeight() / SCALE_FACTOR * 100; scal
public BufferedImage ImageScaler(BufferedImage image){
scaledWidth = (int) image.getWidth() / SCALE_FACTOR * 100;
scaledHeight = (int) image.getHeight() / SCALE_FACTOR * 100;
scaledImage = resize(image, scaledHeight, scaledWidth);
while(scaledHeight > 150){
scaledHeight = scaledImage.getHeight();
scaledWidth = scaledImage.getWidth();
scaledImage = resize(image, scaledHeight, scaledWidth);
scaledHeight = scaledImage.getHeight();
scaledWidth = scaledImage.getWidth();
}
return scaledImage;
}
while循环进入infinte循环。请帮忙
调整大小方法
private static BufferedImage resize(BufferedImage img, int height, int width) {
java.awt.Image tmp = img.getScaledInstance(width, height, java.awt.Image.SCALE_SMOOTH);
BufferedImage resized = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
Graphics2D g2d = resized.createGraphics();
g2d.drawImage(tmp, 0, 0, null);
g2d.dispose();
return resized;
}
你的代码实际上没有改变任何东西。假设当它进入循环时,宽度和高度都是200;前两行仅将scaledHeight和scaledWidth设置为200,第三行编辑图像以符合所述变量,然后第四行和第五行将其设置为。。同样的尺寸。如果在循环scaledHeight之前初始调整大小后未达到150,则永远不会达到。调试时,
scaledHeight
是否会小于或等于150?显示resize()
方法。在循环内从未减少scaledHeight
和scaledWidth
,并创建一个新的“scaledImage”具有相同的尺寸。那么它应该如何变小呢?