可能有人请解释一下,为什么许多程序的图标的路径是这样的: 在/ usr /共享/程序/图标/高彩色/ 16×16/...了解的* nix图标路径
什么我不不懂就是为什么高彩色为什么16×16×16,32×32等
是否有任何功能(例如在GTK),可自动得到这样那样的路径正确的图标?
谢谢!
可能有人请解释一下,为什么许多程序的图标的路径是这样的: 在/ usr /共享/程序/图标/高彩色/ 16×16/...了解的* nix图标路径
什么我不不懂就是为什么高彩色为什么16×16×16,32×32等
是否有任何功能(例如在GTK),可自动得到这样那样的路径正确的图标?
谢谢!
那些图标路径由Icon Theme Specification标准化。其理由是,所有的应用程序可以安装自己的默认图标进入hicolor
主题(这是默认主题,也就是说,如果一个图标是从另一个主题缺失,从hicolor
版本将被使用。)
此外,程序可以请求与所提供图标大小不同的图标大小,例如37x37,系统将选择最合适的可用大小(如32x32
)并将其缩放到所需的大小。
如果有人想要覆盖应用程序的图标,例如为视力不佳的用户制作高对比度的黑白版本,那么他们所要做的就是制作一个同名的图标,它在高对比度的黑白主题中,它将覆盖hicolor
图标。
您询问的功能也存在。在GTK中,函数需要参数const gchar *icon_name
,如gtk_image_new_from_icon_name()
。这些将使用您从当前主题提供的名称加载图标,并且如果它不存在于当前主题中,则从hicolor
主题开始。
术语“hicolor”是标准图标集的名称,它是所有其他图标集的后备,也就是说,如果在当前图标集中找不到应用程序的图标(例如/usr/share/icons/oxygen
),则hicolor目录接下来搜索。
16x16,32x32暗示存储在该目录中的图像的大小,因为图标存储为简单的PNG文件,其精确包含一个图像(不同于例如mac上的图标)。
如果问题不是“为什么'hicolor'?”正如其他人回答,但“为什么使用文件系统作为树形数据库?”答案是,大多数unix文件系统(所有旧的文件系统)在行走目录中有超过1000个条目的路径时停滞不前。
因为这些文件系统中的目录必须线性搜索。
一些更现代的文件系统支持O(日志N)搜索并可以有效地处理更高的计数。