Quali thumbnailer aggiuntivi sono disponibili e come li installo?


9

Domanda :

Il file manager di Ubuntu Nautilus, viene fornito con un ampio supporto per le anteprime dei file. Queste miniature sono gestite da programmi di supporto chiamati miniature.

Il numero di miniature che vengono preinstallati con Ubuntu è limitato e quindi alcuni tipi di file più esotici non vengono visualizzati per impostazione predefinita.

Quali miniature aggiuntive posso installare per attivare le anteprime in questi casi?


Domande e risposte correlate :

Come posso incaricare Nautilus di pre-generare miniature?


Nota :

Sentiti libero di contribuire a questo elenco modificando la risposta wiki della community. In tal caso, seguire le linee guida in questa discussione Meta e utilizzare il modello preesistente per mantenere coerente la risposta.

Risposte:


11

Istruzioni generali di installazione


Miniatura in repository e PPA

Numerosi thumbnailer sono preconfezionati e possono essere facilmente installati dal centro software o dalla riga di comando. Questi thumbnailer non richiedono alcuna configurazione aggiuntiva e dovrebbero funzionare subito dopo il riavvio di nautilus. Puoi farlo con:

nautilus -q 

Si prega di considerare di leggere queste domande e risposte prima di installare qualsiasi cosa da un PPA:

Cosa sono i PPA e come li uso?

PPA è sicuro da aggiungere al mio sistema e quali sono alcune "bandiere rosse" a cui prestare attenzione?

Script di miniature personalizzati su Ubuntu 11.04 e versioni successive

I thumbnailer personalizzati che non sono disponibili nei repository devono essere installati manualmente. Questi sono i passaggi che dovrai eseguire per installarli:

Controlla se lo script ha delle dipendenze elencate. In tal caso, installarli prima.

Scarica lo script e rendilo eseguibile con chmod a+x filethumbnailero tramite Nautilus

Designare una cartella nel proprio file system per tutti i futuri thumbnailer e spostare lo script su di esso, ad es

mkdir $HOME/.scripts/thumbnailers && mv filethumbnailer $HOME/.scripts/thumbnailers

Successivamente dovrai registrare la tua sceneggiatura con Nautilus . Per fare ciò, crea una voce in anteprima /usr/share/thumbnailers. La voce deve seguire lo schema di denominazione in foo.thumbnailercui fooè un'espressione di tua scelta (qui file):

gksudo gedit /usr/share/thumbnailers/file.thumbnailer

Le specifiche del thumbnailer seguono questo schema:

[Thumbnailer Entry]
Exec=$HOME/.scripts/thumbnailers/file.thumbnailer %i %o %s
MimeType=application/file;

La Execvoce punta allo script del tuo thumbnailer mentre il MimeTypecampo indica i MimeTypes correlati. Le variabili possibili sono:

%i Input file path
%u Input file URI
%o Output file path
%s Thumbnail size (vertical)

Le specifiche e le variabili varieranno con ogni script. Basta copiare e incollare il contenuto della rispettiva casella di testo nel file e salvarlo.

I thumbnailer dovrebbero essere attivi dopo aver riavviato nautilus ( nautilus -q).

Script di anteprima personalizzati su Ubuntu 11.04 e versioni precedenti

Le versioni precedenti di Ubuntu si basano su GConf per le associazioni di thumbnailer. Vedi qui per maggiori informazioni.


Fonti :

https://live.gnome.org/ThumbnailerSpec

https://bugzilla.redhat.com/show_bug.cgi?id=636819#c29

https://bugs.launchpad.net/ubuntu/+source/gnome-exe-thumbnailer/+bug/752578

http://ubuntuforums.org/showthread.php?t=1881360



Miniatura per tipo di file


File CHM

Panoramica

Descrizione : con questo script otterrai le miniature dei tuoi file chm nel file manager nautilus. Lo script usa l'immagine più grande dalla homepage del file chm per generare la miniatura, di solito questa sarà un'immagine della copertina.

Creatore : monraaf ( http://ubuntuforums.org/showthread.php?t=1159569 )

Dipendenze :sudo apt-get install python-beautifulsoup python-chm imagemagick

Voce Thumbnailer

[Thumbnailer Entry]
Exec=$HOME/.scripts/thumbnailers/chmthumbnailer %i %o %s
MimeType=application/vnd.ms-htmlhelp;application/x-chm;

copione

#!/usr/bin/env python

import sys, os
from chm import chm
from BeautifulSoup import BeautifulSoup

class ChmThumbNailer(object):
    def __init__(self):
        self.chm = chm.CHMFile()

    def thumbnail(self, ifile, ofile, sz):

        if self.chm.LoadCHM(ifile) == 0:
            return 1

        bestname    = None
        bestsize    = 0
        base        = self.chm.home.rpartition('/')[0] + '/'
        size, data  = self.getfile(self.chm.home)

        if size > 0:
            if self.chm.home.endswith(('jpg','gif','bmp')):
                self.write(ofile, sz, data)
            else:
                soup = BeautifulSoup(data)
                imgs = soup.findAll('img')
                for img in imgs:
                    name = base + img.get("src","")
                    size, data = self.getfile(name)
                    if size > bestsize:
                        bestsize = size
                        bestname = name
                if bestname != None:
                    size, data = self.getfile(bestname)
                    if size > 0:
                        self.write(ofile, sz, data)
        self.chm.CloseCHM()

    def write(self, ofile, sz, data):
        fd = os.popen('convert - -resize %sx%s "%s"' % (sz, sz, ofile), "w")
        fd.write(data)
        fd.close()

    def getfile(self,name):
        (ret, ui) = self.chm.ResolveObject(name)
        if ret == 1:
            return (0, '')
        return self.chm.RetrieveObject(ui)

if len(sys.argv) > 3:
    chm = ChmThumbNailer()
    chm.thumbnail(sys.argv[1], sys.argv[2], sys.argv[3])

File EPUB

Panoramica

Descrizione : epub-thumbnailer è un semplice script che cerca di trovare una copertina in un file epub e crea una miniatura per esso.

Creatore : Mariano Simone ( https://github.com/marianosimone/epub-thumbnailer )

Dipendenze : nessuna elencata, ha funzionato bene subito

Voce Thumbnailer

[Thumbnailer Entry]
Exec=$HOME/.scripts/thumbnailers/epubthumbnailer %i %o %s
MimeType=application/epub+zip;

copione

#!/usr/bin/python

#  This program is free software: you can redistribute it and/or modify
#  it under the terms of the GNU General Public License as published by
#  the Free Software Foundation, either version 3 of the License, or
#  (at your option) any later version.
#
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with this program.  If not, see <http://www.gnu.org/licenses/>.

# Author: Mariano Simone (marianosimone@gmail.com)
# Version: 1.0
# Name: epub-thumbnailer
# Description: An implementation of a cover thumbnailer for epub files
# Installation: see README

import zipfile
import sys
import Image
import os
import re
from xml.dom import minidom
from StringIO import StringIO

def get_cover_from_manifest(epub):
    img_ext_regex = re.compile("^.*\.(jpg|jpeg|png)$")

    # open the main container
    container = epub.open("META-INF/container.xml")
    container_root = minidom.parseString(container.read())

    # locate the rootfile
    elem = container_root.getElementsByTagName("rootfile")[0]
    rootfile_path = elem.getAttribute("full-path")

    # open the rootfile
    rootfile = epub.open(rootfile_path)
    rootfile_root = minidom.parseString(rootfile.read())

    # find the manifest element
    manifest = rootfile_root.getElementsByTagName("manifest")[0]
    for item in manifest.getElementsByTagName("item"):
        item_id = item.getAttribute("id")
        item_href = item.getAttribute("href")
        if "cover" in item_id and img_ext_regex.match(item_href.lower()):
            cover_path = os.path.join(os.path.dirname(rootfile_path), 
                                      item_href)
            return cover_path

    return None

def get_cover_by_filename(epub):
    cover_regex = re.compile(".*cover.*\.(jpg|jpeg|png)")

    for fileinfo in epub.filelist:
        if cover_regex.match(os.path.basename(fileinfo.filename).lower()):
            return fileinfo.filename

    return None

def extract_cover(cover_path):
    if cover_path:
        cover = epub.open(cover_path)
        im = Image.open(StringIO(cover.read()))
        im.thumbnail((size, size), Image.ANTIALIAS)
        im.save(output_file, "PNG")
        return True
    return False

# Which file are we working with?
input_file = sys.argv[1]
# Where do does the file have to be saved?
output_file = sys.argv[2]
# Required size?
size = int(sys.argv[3])

# An epub is just a zip
epub = zipfile.ZipFile(input_file, "r")

extraction_strategies = [get_cover_from_manifest, get_cover_by_filename]

for strategy in extraction_strategies:
    try:
        cover_path = strategy(epub)
        if extract_cover(cover_path):
            exit(0)
    except Exception as ex:
        print "Error getting cover using %s: " % strategy.__name__, ex

exit(1)

File EXE

Panoramica

Descrizione : gnome-exe-thumbnailer è un thumbnailer per Gnome che fornirà ai file .exe di Windows un'icona basata sulla loro icona incorporata e un'icona generica "Programma vino". Se il programma dispone delle normali autorizzazioni di esecuzione, verrà visualizzata l'icona standard incorporata. Questo thumbnailer fornirà anche un'icona di anteprima per programmi eseguibili .jar, .py e simili.

Disponibilità : repository ufficiali

Installazione

sudo apt-get install gnome-exe-thumbnailer

ODP / ODS / ODT e altri file LibreOffice e Open Office

Panoramica

Descrizione: ooo-thumbnailer è un thumbnailer di documenti LibreOffice, OpenOffice.org e Microsoft Office che può essere utilizzato da Nautilus per creare miniature per documenti, fogli di calcolo, presentazioni e disegni.

Disponibilità : sviluppatore PPA (versione più recente compatibile con LibreOffice in Ubuntu 12.04 e versioni successive)

Installazione

sudo add-apt-repository ppa:flimm/ooo-thumbnailer && apt-get update && apt-get install ooo-thumbnailer

E le .xpmimmagini? Ho pensato che fossero "standard" come png, jpge bmp, ma Nautilus non genera anteprime per loro.
MestreLion

I file di immagine XPM sono perfetti
Glutanimate,

1
non importa, ho scoperto che non può gestire i file con commenti prima /* XPM */dell'intestazione, anche se eogli visualizza bene
MestreLion

Penso che puoi trovare il mimetype del file usandofile -i FILE
Wilf,

1

File ICNS (icone Mac OSX)

Panoramica

Nautilus non genera miniature per le icone di Mac OSX a causa di alcuni bug , ma il supporto è integrato GdkPixbuf.

copione

Questo è uno script di base per generare miniature per i .icnsfile. Una versione più solida è disponibile all'indirizzo https://github.com/MestreLion/icns-thumbnailer

#!/usr/bin/env python
import sys
from gi.repository import GdkPixbuf
inputname, outputname, size = sys.argv[1:]
pixbuf = GdkPixbuf.Pixbuf.new_from_file(inputname)
scaled = GdkPixbuf.Pixbuf.scale_simple(pixbuf, int(size), int(size),
                                       GdkPixbuf.InterpType.BILINEAR)
scaled.savev(outputname, 'png', [], [])

Installare

Uno script di installazione, insieme al .thumbnailerfile per Nautilus, sono disponibili nel repository del progetto icns-thumbnailer

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.