2013-01-01 6 views
7

नॉटिलस मुझे एक फ़ाइल का थंबनेल दिखाता है, अगर इसकी एक छवि मुझे एक पूर्वावलोकन दिखाएगी, अगर यह एक वीडियो है तो यह वीडियो से एक फ्रेम दिखाएगा, अगर यह एक दस्तावेज़ है तो यह मुझे एप्लिकेशन आइकन दिखाएगा।मैं थंबनेल कैसे प्राप्त कर सकता हूं जो किसी दिए गए फ़ाइल के लिए नॉटिलस का उपयोग करता है?

मैं छवि का उपयोग कैसे कर सकता हूं?

मुझे लगता है कि वे ~/.thumbnail/ में कैश किए गए हैं, हालांकि उन्हें सभी अद्वितीय नाम दिए गए हैं।

उत्तर

8

थंबनेल फ़ाइल नाम फ़ाइल नाम का एक एमडी 5 है। हालांकि फ़ाइल नाम छवि के लिए पूर्ण यूआरआई है (बिना किसी नई लाइन के)।

तो तुम क्या करने की जरूरत:

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

और यदि यह रिक्त स्थान है, तो आप उन्हें '% 20' में बदलने के लिए "foo bar.jpg"

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

के लिए पूर्व की जरूरत है,

Ubuntu forums पर मिला। freedesktop.org wiki से जुड़े Thumbnail Managing Standard दस्तावेज़ भी देखें।

+0

जब थंबनेल नहीं है, तो पीढ़ी को मजबूर करने के लिए तंत्र क्या है? –

0

मुझे लगता है कि आपको प्रोग्रामिंग थंबनेल तक पहुंचने की आवश्यकता है। आप Gio library का उपयोग करना चाहते हैं।

मैं थंबनेल की जांच करने का कोई तरीका नहीं ढूंढ पाया है, और यदि यह अस्तित्व में नहीं है, तो एप्लिकेशन आइकन के लिए जाएं, इसलिए आपको इसे दो चरणों में करने की आवश्यकता है। (। माफ करना, पायथन मैं सी में धाराप्रवाह नहीं कर रहा हूँ):

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() 
2

सरल अजगर थंबनेल पथ की गणना करने के उपकरण यहाँ आप एक नमूना है। Raja द्वारा लिखित, ActiveState code recipe के रूप में साझा किया गया। नोट, हालांकि, यह कोड रिक्त स्थान या विशेष वर्णों के साथ फ़ाइल नाम से नहीं बचता है; जिसका अर्थ है कि यह कोड सभी फ़ाइल नामों के लिए काम नहीं करता है।

"""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') 
संबंधित मुद्दे