【发布时间】:2020-06-01 15:52:17
【问题描述】:
我想在其角落制作一个带有小 jLabel(50x50) 的应用程序。
我现在遇到的问题是标签显示的图像看起来很糟糕。
我还在我桌面上的窗口中的快捷方式中添加了相同的图像作为图标作为比较。
左侧是 Windows,右侧是 Java JLabel。
如何在 Jave 中存档类似的缩放结果而不损失质量?
不需要使用JLabel。
代码:
ImageIcon imgIcon = new ImageIcon(path);
Image img = imgIcon.getImage();
Image imgScaled = img.getScaledInstance((int) (getWidth()), (int) (getHeight()),
Image.SCALE_SMOOTH);
ImageIcon image = new ImageIcon(imgScaled);
label.setIcon(image);
编辑:
【问题讨论】:
-
您应该添加更多详细信息,例如您使用的布局管理器、JLabel 的大小等。JLabel 会根据您布局组件的方式分配的空间自动缩放图像。例如,如果您在微小的 JLabel 中使用 256x256 图标,则会出现锯齿。
-
我明白你在说什么,但我怎样才能让 256x256 图标在例如 20x20 形状中保持高分辨率?它不必使用 JLabel。
-
想想你在问什么。您希望图像在其原始大小的 5% 的空间中保持相同的分辨率吗?恐怕事情不会那样工作——这就是为什么 Android 应用程序,例如,为不同的显示尺寸包含不同的图标集。如果你的规模足够大,即使 EPS 看起来也会很笨重。
-
这个(多种尺寸),或者使用矢量图形。
-
但是,如果您查看 Google Chrome 图标,它们只选择了 25 像素但仍然清晰,这怎么可能?我用一个例子编辑了我的问题