为什么舞台图标质量如此之低? 原始图像要好得多。 怎么解决?

我使用此代码将图像设置为舞台图标:

stage.getIcons().add(new Image("/res/app_icon.png"));

截图:
截图

原图标:
原始图标

#1楼 票数:8 已采纳

更新

遗憾的是,JavaFX 8中图标选择器的实现并不总是从可用图标列表中为应用程序选择最佳图标大小。

看到:

这些问题(目前)计划在Java 9中解决。

对这些问题的一些评论是:

实际上,Glass目前仅支持为一个窗口分配一个图标,它不允许一个人分配一组不同大小的图标。 此功能需要在Glass中实现。

-

我注意到,在设置多个图标时,只使用getIcons()返回的列表中的最后一个图标。 如果列表中包含更好分辨率的其他图标则无关紧要。

如果您提供不同大小的图标列表,请尝试在列表中放置您最期望使用的大小(可能从最小到最大排序列表或放置48x48图标,这是快速启动区域中使用的大小在Windows 7上,作为列表中的最后一个或唯一的元素)。 不幸的是,我无法访问Windows计算机来测试该平台的最佳图标大小。


图标指南(但请注意上述更新中的信息):

  • stage.getIcons()返回的列表中提供一组不同大小的高质量图标。
  • 运行时将选择最佳拟合大小。
  • 使用大多数操作系统可以使用的标准图标大小而无需进一步缩放(例如,项目大小为2或48x48的幂)。
  • 使用高质量的源图像(问题中的原始源图像对我来说似乎有点模糊)。
  • 对于非常小的图标,有时将较大图标的纯粹比例缩小到较小尺寸并非最佳。 有时,图标设计师最好清理并从小图标中删除复杂的细节,这可能在较大的图标中是正常的 - 请参阅有关推动像素的图标大小讨论,以帮助理解原因。
  • 有关此图标手册中哪些操作系统使用的图标大小的信息。

stage.getIcons().addAll(
    new Image("/res/app_icon64x64.png"),
    new Image("/res/app_icon32x32.png"),
    new Image("/res/app_icon16x16.png")
);

各种尺寸的高质量图标的重要来源是http://www.iconarchive.com ,例如这个刷新图标

  ask by Nazariy Demyanovskyi translate from so

未解决问题?本站智能推荐:

1回复

任务栏中的JavaFX图标质量

在JavaFX中将png图像设置为舞台图标时(使用Kotlin,但这也是Java中的问题),图标似乎变形了。 我搜索了这个问题,发现了以下几点: 它(可能仍然是)一个错误。 在这个bug的问题页面上 ,他们解释了一种解决方法是避免使用半透明像素。 我试过这个,但我的图像仍然会
1回复

JavaFX的。为标题栏和操作系统任务栏设置不同的图标

JavaFX中是否有一种方法可以为标题栏和操作系统任务栏设置不同的应用程序图标? 问题是系统任务栏中显示的图标与标题栏中的图标相比要大得多,并且系统无法正确调整它们的大小。 我想为不同的图标大小使用不同的图像。 与您在.ico文件中的操作类似。 如果我调用stage.getI
1回复

当初级阶段关闭时,JavaFX 隐藏任务栏图标

我按照本教程创建了一个带有托盘图标的应用程序。 当我关闭应用程序窗口时,任务栏上会留下一个图标。 问题是如何在关闭窗口时隐藏任务栏上的图标? 如果不可能,那么当我单击任务栏图标时是否有办法恢复窗口? 一个跨平台的解决方案将不胜感激。
1回复

如何为 javafx 应用程序设置两个不同的图标(一个用于任务栏,另一个用于标题栏)

我正在使用 JavaFx,我知道如何设置应用程序的图标,但如何设置两个不同的图标,一个用于应用程序的标题栏,另一个用于操作系统的任务栏,就像在默认的 JavaFx 应用程序中一样。 如图所示: 正如@Slaw 评论的那样: 在您的图像中,任务栏图标是 OpenJDK 徽标。 您
12回复

在 JavaFX 中在舞台上设置图标

我想知道我应该如何在 javaFX 舞台上设置图标。 我找到了这个方法,但它不能正常工作。 stage是javafx.stage.Stage的一个实例,我导入了javafx.scene.image.Image。 这是我们收到的例外: 无效的 URL:无效的 URL 或找不到资源 另外,ico
6回复

如何在我的应用程序的 java fx 2.0 中更改舞台标题栏上的图标 [重复]

这个问题在这里已经有了答案: JavaFX 应用程序图标(17 个回答) 3年前关闭。 我已经尝试过 但我
1回复

如何在Windows的任务栏上阻止或更改自己的javafx应用程序符号的右键单击菜单

我需要在任务栏程序的右键单击上删除窗口中的菜单项“关闭窗口”。 我怎样才能做到这一点?
1回复

当您从任务栏关闭 javafx 应用程序时会触发什么事件,您如何处理它? [重复]

这个问题在这里已经有了答案: 通过 Shutdownhook 使用 JavaFX Application.stop() 方法1 个回答