【问题标题】:How to resize the original image into a common size of image in Java?java - 如何将原始图像调整为Java中常见的图像大小?
【发布时间】:2011-01-19 07:48:45
【问题描述】:

在 Java 中,如何将图像调整为任何类型或大小的图像的默认大小?

【问题讨论】:

    标签: java image resize


    【解决方案1】:

    您无法轻松地将图像从一种文件大小调整为另一种文件大小,但是,大多数 JPG/PNG/GIF/等。往往根据其分辨率具有相似的文件大小。例如,200kb 压缩 JPG 的大小通常可能为 1280x960。如果是这种情况,您只需将所有调整大小操作作为目标,将目标图像的大小调整为该大小,并大致获得您想要的大小限制。

    一个非常简单的方法是使用非常简单的 java image resizing library(Apache 2 许可证),它可以为您做所有事情。调整大小的示例代码如下所示:

    BufferedImage img = ImageIO.read(...); // load image
    BufferedImage scaledImg = Scalr.resize(img, 1280, 960);
    

    您的图像比例得到尊重,该库会根据缩放引起的图像变化量(最快、平衡或质量)对它应该使用的方法做出最佳猜测,并且始终支持最好的 Java2D 图像类型用于进行缩放以避免“黑色”结果的问题或看起来非常糟糕的输出(例如过度抖动的 GIF 图像)。

    另外,如果你想强制它在 Java 中输出最好的结果,API 调用应该是这样的:

    BufferedImage img = ImageIO.read(...); // load image
    BufferedImage scaledImg = Scalr.resize(img, Method.QUALITY, 1280, 960);
    

    该库使用 Java2D 推荐的增量缩放为您提供最佳外观。

    您可以通读库中的所有 cmets(代码本身被大量文档化)以查看所有已解决的不同 JDK 错误或为提高性能或内存使用而进行的优化。我花了很多时间调整这个实现,并且从将它部署到 Web 应用程序和其他 Java 项目中的人们那里得到了很多很好的反馈。

    【讨论】:

      【解决方案2】:

      网上有关于如何做到这一点的完整文章,这些内容应该可以帮助您:

      【讨论】:

      • 实际上我在谈论文件大小(3mb -> 200 kb),而不是图像的尺寸。它是否也包括它们?
      • @Anand 你找到解决方案了吗?
      猜你喜欢
      • 1970-01-01
      • 2014-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-11
      • 2013-11-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多