我怎样才能获得缩略图鹦鹉螺使用给定的文件?(How can I get the thumbnail

2019-08-05 05:06发布

鹦鹉螺显示我一个文件的缩略图,如果它的图像会显示我的预览,如果它是一个视频会从该视频中显示的帧,如果它的文档,它会显示我的应用程序图标。

如何访问的形象呢?

我看到他们在缓存~/.thumbnail/但是他们都给出唯一的名称。

Answer 1:

缩略图文件名是文件名的MD5。 然而,文件名是绝对URI到图像(不换行)。

所以,你需要做的:

echo -n 'file:///home/yuzem/pics/foo.jpg' | md5sum

如果它有空格,你需要将它们转换为“%20”,前为“富bar.jpg”

echo -n 'file:///home/yuzem/pics/foo%20bar.jpg' | md5sum

在发现Ubuntu论坛 。 又见缩略图管理标准文件,从链接freedesktop.org维基 。



Answer 2:

简单的Python工具来计算的缩略图路径。 写的拉加 ,共享作为ActiveState的代码配方 。 但是请注意,这个代码不转义空格或特殊字符的文件名; 这意味着该代码为所有的文件名不起作用。

"""Get the thumbnail stored on the system.
Should work on any linux system following the desktop standards"""

import hashlib
import os

def get_thumbnailfile(filename):
    """Given the filename for an image, return the path to the thumbnail file.
    Returns None if there is no thumbnail file.
    """
    # Generate the md5 hash of the file uri
    file_hash = hashlib.md5('file://'+filename).hexdigest()

    # the thumbnail file is stored in the ~/.thumbnails/normal folder
    # it is a png file and name is the md5 hash calculated earlier
    tb_filename = os.path.join(os.path.expanduser('~/.thumbnails/normal'),
                               file_hash) + '.png'

    if os.path.exists(tb_filename):
        return tb_filename
    else:
        return None

if __name__ == '__main__':
    import sys
    if len(sys.argv) < 2:
        print('Usage:  get_thumbnail.py filename')
        sys.exit(0)

    filename = sys.argv[1]
    tb_filename = get_thumbnailfile(filename)

    if tb_filename:
        print('Thumbnail for file %s is located at %s' %(filename, tb_filename))
    else:
        print('No thumbnail found')


Answer 3:

我想,你需要以编程方式访问的缩略图。 你想使用吉奥库 。

我一直没能找到一种方法来检查缩略图,如果它不存在,去为应用程序图标,所以你需要做的是在两个步骤。 这里有一个样本(对不起,巨蟒我不流利的温度。):

import gio
import gtk

window = gtk.Window(gtk.WINDOW_TOPLEVEL)
window.show()
hbox = gtk.HBox()
hbox.show()  
window.add(hbox)

f = gio.File(path='/home/whatever/you/want.jpg')
info = f.query_info('*')

# We check if there's a thumbnail for our file
preview = info.get_attribute_byte_string ("thumbnail::path")

image = None
if preview:
    image = gtk.image_new_from_file (preview)
else:
    # If there's no thumbnail, we check get_icon, who checks the
    # file's mimetype, and returns the correct stock icon.
    icon = info.get_icon()
    image = gtk.image_new_from_gicon (icon, gtk.ICON_SIZE_MENU)

hbox.add (image)

window.show_all()
gtk.main()


文章来源: How can I get the thumbnail that nautilus uses for a given file?