def run_thumbnailer(mime_type, src_file, dest_file, size=SIZE_NORMAL):
"""
This function attempts to generate a thumbnail image for a non-image.
This includes things such as video and PDF files. This will currently
only succeed if the GNOME environment is installed, since at this point,
only the GNOME environment has the ability to generate thumbnails.
:param mime_type: mime type of the source file
:type mime_type: unicode
:param src_file: filename of the source file
:type src_file: unicode
:param dest_file: destination file for the thumbnail image
:type dest_file: unicode
:param size: option parameters specifying the desired size of the
thumbnail
:type size: int
:returns: True if the thumbnail was successfully generated
:rtype: bool
"""
# only try this if GCONF is present, the thumbnailer has not been
# disabled, and if the src_file actually exists
if GCONF and USE_THUMBNAILER and os.path.isfile(src_file):
# find the command and enable for the associated mime types by
# querying the gconf database
base = '/desktop/gnome/thumbnailers/%s' % mime_type.replace('/', '@')
cmd = __get_gconf_string(base + '/command')
enable = __get_gconf_bool(base + '/enable')
# if we found the command and it has been enabled, then spawn
# of the command to build the thumbnail
if cmd and enable:
if size == SIZE_LARGE:
thumbscale = THUMBSCALE_LARGE
else:
thumbscale = THUMBSCALE
sublist = {
'%s' : "%d" % int(thumbscale),
'%u' : src_file,
'%o' : dest_file,
}
cmdlist = [ sublist.get(x, x) for x in cmd.split() ]
return os.spawnvpe(os.P_WAIT, cmdlist[0], cmdlist, os.environ) == 0
return False
#-------------------------------------------------------------------------
#
# get_thumbnail_image
#
#-------------------------------------------------------------------------
评论列表
文章目录