java - 高档 2D 低分辨率图像

标签 java swing jframe image-resizing

我正在使用该程序ImageResizer使用 XBR4x 算法将旧 2D 游戏中的 .gif 图像从 32x32 升级到 48x48。

具体流程:

  1. 手动将所有图像重命名为 .jpeg,因为程序无法打开 .gif
  2. 调整图像大小,程序将它们保存为 .bmp
  3. 再次手动将图像重命名为 .gif。

问题:

当在Paint中查看图像时,它们看起来非常好,当在我的RGB BufferedImage中绘制时,它们突然都有一个白色/灰色~1px边框,这不是背景颜色,图像直接彼此相邻放置。由于我有这些图像的完整马赛克,所以白色边框是不行的。

图像 32x32:enter image description here

放大后的图像 48x48:enter image description here

其中 4 个带白色边框的地球图像的游戏内屏幕截图:enter image description here

问题:

这些边界是如何产生的?如果无法回答这个问题,是否有更可靠的方法来放大低分辨率游戏图像,使它们看起来像素化更少?

最佳答案

我认为这是图像调整大小算法的产物,例如,如果您在 XnView 中查看它们,则在组合之前放大的图像的边框实际上是可见的。 解决这个问题的最佳方法是使用另一种工具来调整图像大小,该工具允许用户控制此类边界效果,但如果您必须使用这个工具,您仍然可以通过构建 3x3 网格来解决该问题。原始图像(96x96),将其缩放至 144x144,然后剪掉中央的 48x48 部分。这将消除边界效应。

关于java - 高档 2D 低分辨率图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11725017/

相关文章:

java - swing 中的 JLabel 数组

java - 如何增量构建maven项目

java - 通过 JNA Java 使用 SetParent 时,父窗口速度大大减慢

java - 无法显示字符串

java - 如何阻止 Java Swing JOptionPane OK_CANCEL_OPTION 在 OK 选项上关闭?

java - 从 jar 文件加载图像(使用 Eclipse IDE)

java - 从 JPanel 返回信息

java - 无限滚动 ListView 不起作用

java - Java 中列表的比较、处理和删除条目

java - scala 和 java 中的枚举器与迭代器