首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java应用程序中的无限while循环

Java应用程序中的无限while循环
EN

Stack Overflow用户
提问于 2018-08-28 03:27:18
回答 1查看 81关注 0票数 -1

在我的Java应用程序中,我试图调整图像的大小,直到它适合所需的尺寸,但仍然保持其原始大小。

以下方法用于调整图像大小。

代码语言:javascript
复制
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循环进入一个无限循环。请帮帮忙。

调整大小方法。

代码语言:javascript
复制
 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;
}
EN

回答 1

Stack Overflow用户

发布于 2018-08-28 03:37:07

你的代码实际上并没有改变任何东西。假设进入循环时,宽度和高度都是200;前两行仅将scaledHeight和scaledWidth设置为200,第三行编辑图像以符合上述变量,然后第四和第五行将其设置为..完全相同的尺寸。如果在循环之前的初始大小调整之后,scaledHeight没有达到150,那么它永远不会达到150。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52045825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档