Thumbnailer tambahan apa yang tersedia dan bagaimana cara menginstalnya?

9

Pertanyaan :

Manajer file Ubuntu Nautilus,, hadir dengan dukungan luas untuk pratinjau file. Thumbnail ini ditangani oleh program pembantu yang disebut thumbnail.

Jumlah thumbnailer yang datang terinstal dengan Ubuntu terbatas dan dengan demikian beberapa jenis file yang lebih eksotis tidak diberikan secara default.

Thumbnailer tambahan apa yang dapat saya instal untuk mengaktifkan pratinjau dalam kasus-kasus ini?


Tanya Jawab Terkait :

Bagaimana saya bisa menginstruksikan Nautilus untuk membuat thumbnail sebelumnya?


Catatan :

Jangan ragu untuk berkontribusi ke daftar ini dengan mengedit jawaban wiki komunitas. Jika Anda melakukannya, harap ikuti pedoman dalam diskusi Meta ini dan gunakan pola yang sudah ada sebelumnya untuk menjaga agar jawabannya konsisten.

Glutanimate
sumber

Jawaban:

11

Petunjuk instalasi umum


Thumbnail dalam repositori dan PPA

Sejumlah thumbnailer sudah dikemas sebelumnya dan dapat dengan mudah dipasang dari pusat perangkat lunak atau baris perintah. Thumbnailer ini tidak memerlukan konfigurasi tambahan dan harus berfungsi segera setelah memulai ulang nautilus. Anda dapat melakukannya dengan:

nautilus -q 

Harap pertimbangkan untuk membaca Tanya Jawab ini sebelum memasang apa pun dari PPA:

Apa itu PPA dan bagaimana cara menggunakannya?

Apakah PPA aman untuk ditambahkan ke sistem saya dan "bendera merah" apa yang harus diperhatikan?

Skrip thumbnail khusus pada Ubuntu 11.04 dan lebih tinggi

Thumbnail khusus yang tidak tersedia di repositori harus diinstal secara manual. Ini adalah langkah-langkah yang harus Anda ambil untuk menginstalnya:

Periksa apakah skrip memiliki daftar ketergantungan. Jika demikian, instal terlebih dahulu.

Unduh skrip dan membuatnya dapat dieksekusi dengan chmod a+x filethumbnaileratau melalui Nautilus

Tentukan folder di sistem file Anda untuk semua thumbnailer di masa depan dan pindahkan script ke sana, mis

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

Selanjutnya Anda harus mendaftarkan skrip Anda dengan Nautilus . Untuk melakukannya, buat entri thumbnailer di /usr/share/thumbnailers. Entri harus mengikuti skema penamaan di foo.thumbnailermana fooekspresi pilihan Anda (di sini file):

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

Spesifikasi thumbnailer mengikuti skema ini:

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

The Execentry point untuk naskah thumbnailer Anda sementara MimeTypelapangan menunjuk Mimetypes terkait. Variabel yang mungkin adalah:

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

Spesifikasi dan variabel akan bervariasi dengan setiap skrip. Cukup salin dan tempel konten dari kotak teks masing-masing ke dalam file dan simpan.

Thumbnailer harus aktif dan berjalan setelah memulai ulang nautilus ( nautilus -q).

Skrip thumbnail khusus pada Ubuntu 11.04 dan di bawah

Versi Ubuntu yang lebih lama mengandalkan GConf untuk asosiasi thumbnailer. Lihat di sini untuk informasi lebih lanjut.


Sumber :

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



Thumbnail berdasarkan jenis file


File CHM

Gambaran

Deskripsi : Dengan skrip ini Anda akan mendapatkan thumbnail dari file chm Anda di pengelola file nautilus. Script menggunakan gambar terbesar dari beranda file chm untuk menghasilkan thumbnail, biasanya ini akan menjadi gambar sampul depan.

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

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

Entri thumbnail

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

Naskah

#!/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

Gambaran

Deskripsi : epub-thumbnailer adalah skrip sederhana yang mencoba menemukan sampul dalam file epub dan membuat thumbnail untuknya.

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

Ketergantungan : tidak ada yang terdaftar, langsung berfungsi dengan baik

Entri Thumbnailer

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

Naskah

#!/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 ([email protected])
# 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

Gambaran

Deskripsi : gnome-exe-thumbnailer adalah thumbnailer untuk Gnome yang akan memberikan Windows file .exe ikon berdasarkan ikon yang disematkan dan ikon "Wine program" yang umum. Jika program memiliki izin eksekusi yang normal, maka ikon bawaan standar akan ditampilkan. Thumbnailer ini juga akan memberikan ikon thumbnail untuk .jar, .py, dan program yang dapat dieksekusi serupa.

Ketersediaan : repositori resmi

Instalasi

sudo apt-get install gnome-exe-thumbnailer

ODP / ODS / ODT dan file LibreOffice dan Open Office lainnya

Gambaran

Deskripsi: thumbnailer ooo adalah thumbnailer dokumen LibreOffice, OpenOffice.org dan Microsoft Office yang dapat digunakan oleh Nautilus untuk membuat thumbnail untuk dokumen, spreadsheet, presentasi, dan gambar Anda.

Ketersediaan : PPA pengembang (versi terbaru yang kompatibel dengan LibreOffice di Ubuntu 12.04 dan lebih tinggi)

Instalasi

sudo add-apt-repository ppa:flimm/ooo-thumbnailer && apt-get update && apt-get install ooo-thumbnailer
Glutanimate
sumber
Bagaimana dengan .xpmgambar? Saya berasumsi mereka "standar" seperti png, jpgdan bmp, tetapi Nautilus tidak menghasilkan preview untuk mereka.
MestreLion
File gambar XPM membuat saya baik-baik saja di Nautilus 3.4: i.imgur.com/XYUZonV.png
Glutanimate
1
nevermind, saya tahu itu tidak bisa menangani file dengan komentar sebelum /* XPM */header, bahkan jika eogmenampilkannya baik
MestreLion
Saya pikir Anda dapat menemukan mimetype file menggunakanfile -i FILE
Wilf
1

File ICNS (Ikon Mac OSX)

Gambaran

Nautilus tidak menghasilkan thumbnail untuk ikon Mac OSX karena beberapa bug , tetapi dukungan sudah ada GdkPixbuf.

Naskah

Ini adalah skrip dasar untuk menghasilkan thumbnail untuk .icnsfile. Versi yang lebih kuat dapat ditemukan di 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', [], [])

Install

Skrip instal, bersama dengan .thumbnailerfile untuk Nautilus, tersedia di repositori proyek icns-thumbnailer

MestreLion
sumber