如何生成文件的缩略图/预览?

如何生成文件的缩略图/预览?

我为 Windows 和 macOS 编写了一个应用程序,目前正在将其移植到 Linux。我的应用程序实现了文件浏览器,可以显示文件的缩略图或文档图标。

在 Windows 上,我可以通过 shell 扩展访问文件缩略图(或文档图标,如果没有缩略图支持)。

在 MacOS 上,我可以通过 QuickLook 生成缩略图(或文档图标)。

在 Linux 上,该怎么做...

1... 生成缩略图,例如 JPEG、PNG 2... 如果没有可用缩略图,则后备提取文件的文档图标?

谢谢你!

答案1

你需要一个缩略图守护进程,比如不倒翁

它是一个守护进程,因此独立于您的程序运行并为您的文件生成缩略图。您的程序可以通过 DBus 连接到它,然后可以向守护进程发送请求以生成新的缩略图。已经生成的缩略图可以在“缩略图管理DBus规范”标准指定的路径中找到。我不知道基于 QT 的环境是否遵循相同的标准或有自己的机制。

对于“后备”,您应该使用图标查找的 freedesk 标准,以及免费桌面 mime 数据库模仿猜测文件。根据您使用的语言,通常您可以找到一个为您实现这些标准的库,并且 xgd-utils 中还有一个命令行工具作为标准的参考实现。遗憾的是,存储用户首选图标主题名称的方式根本没有标准化,并且每个桌面环境都有不同的解决方案。

对死灵感到抱歉,但这是相关谷歌搜索的第一个结果。

答案2

1...生成缩略图,例如 JPEG、PNG

GraphicsMagick/ImageMagick

我想不出任何可以用于 Linux 的 API。 GTK/Qt/FLTK/Enlightenment 具有广泛不同的图像库。理论上,您可以使用libpng/libjpeg-turbo/libtiff其他格式的类似库,然后使用您自己的算法调整大小。

2...如果没有可用的缩略图,是否可以后备提取文件的文档图标?

我不明白这个问题,抱歉。

相关内容