มีภาพขนาดย่อเพิ่มเติมอะไรบ้างและฉันจะติดตั้งได้อย่างไร


9

คำถาม :

ตัวจัดการไฟล์ของ Ubuntu Nautilusมาพร้อมกับการรองรับตัวอย่างไฟล์ที่หลากหลาย ภาพขนาดย่อเหล่านี้ได้รับการจัดการโดยโปรแกรมผู้ช่วยที่เรียกว่ารูปขนาดย่อ

จำนวนของ thumbnailers ที่ติดตั้งไว้ล่วงหน้ากับ Ubuntu นั้นมี จำกัด และทำให้ไฟล์บางประเภทที่แปลกใหม่ไม่ถูกแสดงตามค่าเริ่มต้น

ฉันสามารถติดตั้งภาพขนาดย่ออะไรเพิ่มเติมเพื่อเปิดใช้งานตัวอย่างในกรณีเหล่านี้


ที่เกี่ยวข้อง Q & As :

ฉันจะสั่งให้ Nautilus สร้างภาพขนาดย่อไว้ล่วงหน้าได้อย่างไร


หมายเหตุ :

อย่าลังเลที่จะมีส่วนร่วมในรายการนี้โดยแก้ไขคำตอบของวิกิชุมชน หากคุณทำเช่นนั้นโปรดปฏิบัติตามแนวทางในการสนทนา Meta นี้และใช้รูปแบบที่มีอยู่ก่อนหน้าเพื่อให้คำตอบสอดคล้องกัน

คำตอบ:


11

คำแนะนำการติดตั้งทั่วไป


รูปย่อในที่เก็บและ PPA

จำนวนภาพขนาดเล็กถูกบรรจุล่วงหน้าและสามารถติดตั้งได้ง่ายจากศูนย์ซอฟต์แวร์หรือบรรทัดคำสั่ง ภาพขนาดย่อเหล่านี้ไม่ต้องการการกำหนดค่าเพิ่มเติมใด ๆ และควรจะทำงานได้ทันทีหลังจากรีสตาร์ทหอยโข่ง คุณสามารถทำได้ด้วย:

nautilus -q 

โปรดอ่านคำถาม & คำตอบเหล่านี้ก่อนติดตั้งอะไรจาก PPA:

PPA คืออะไรและฉันจะใช้ได้อย่างไร

PPA ปลอดภัยที่จะเพิ่มลงในระบบของฉันหรือไม่และ "ธงสีแดง" ที่ต้องระวังมีอะไรบ้าง

สคริปต์ภาพขนาดย่อที่กำหนดเองบน Ubuntu 11.04 ขึ้นไป

Custom thumbnailers ที่ไม่พร้อมใช้งานในที่เก็บจะต้องติดตั้งด้วยตนเอง นี่คือขั้นตอนที่คุณจะต้องดำเนินการเพื่อติดตั้ง:

ตรวจสอบว่าสคริปต์มีรายการอ้างอิงใด ๆ ถ้าเป็นเช่นนั้นติดตั้งพวกเขาก่อน

ดาวน์โหลดสคริปต์และทำให้สามารถเรียกใช้งานด้วยchmod a+x filethumbnailerหรือผ่าน Nautilus

กำหนดโฟลเดอร์ในระบบไฟล์ของคุณสำหรับรูปขนาดย่อในอนาคตและย้ายสคริปต์ไปที่ไฟล์เช่น

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

ถัดไปคุณจะต้องลงทะเบียนสคริปต์ของคุณกับNautilus /usr/share/thumbnailersจะทำเช่นนั้นสร้างรายการรูปภาพย่อใน รายการควรเป็นไปตามรูปแบบการตั้งชื่อfoo.thumbnailerโดยที่fooนิพจน์ที่คุณเลือก (ที่นี่file):

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

ข้อกำหนดรูปขนาดย่อเป็นไปตามรูปแบบนี้:

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

Execจุดเข้าสคริปต์รูปภาพย่อของคุณในขณะที่MimeTypeเขตกำหนด Mimetypes ที่เกี่ยวข้อง ตัวแปรที่เป็นไปได้คือ:

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

ข้อมูลจำเพาะและตัวแปรจะแตกต่างกันไปในแต่ละสคริปต์ เพียงคัดลอกและวางเนื้อหาของกล่องข้อความที่เกี่ยวข้องลงในไฟล์และบันทึก

ภาพขนาดย่อควรจะเปิดใช้งานหลังจากรีสตาร์ท nautilus ( nautilus -q)

สคริปต์ภาพขนาดย่อที่กำหนดเองบน Ubuntu 11.04 และด้านล่าง

Ubuntu รุ่นก่อนหน้าพึ่งพา GConf สำหรับการเชื่อมโยงกับ thumbnailer ดูที่นี่สำหรับข้อมูลเพิ่มเติม


แหล่งข้อมูล :

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



รูปย่อตามประเภทไฟล์


ไฟล์ CHM

ภาพรวม

คำอธิบาย : ด้วยสคริปต์นี้คุณจะได้รับภาพขนาดย่อของไฟล์ chm ของคุณในโปรแกรมจัดการไฟล์ nautilus สคริปต์ใช้ภาพที่ใหญ่ที่สุดจากหน้าแรกของไฟล์ chm เพื่อสร้างภาพขนาดย่อซึ่งโดยปกติจะเป็นภาพหน้าปก

ผู้สร้าง : monraaf ( http://ubuntuforums.org/showthread.php?t=1159569 )

การพึ่งพา :sudo apt-get install python-beautifulsoup python-chm imagemagick

รายการตัวเลือกขนาดย่อ

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

ต้นฉบับ

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

ไฟล์ EPUB

ภาพรวม

คำอธิบาย : epub-thumbnailer เป็นสคริปต์ง่าย ๆ ที่พยายามค้นหาหน้าปกในไฟล์ epub และสร้างภาพขนาดย่อสำหรับมัน

ผู้สร้าง : Mariano Simone ( https://github.com/marianosimone/epub-thumbnailer )

การพึ่งพา : ไม่มีรายชื่อทำงานได้ดีทันที

รายการย่อภาพ

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

ต้นฉบับ

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

ไฟล์ EXE

ภาพรวม

คำอธิบาย : gnome-exe-thumbnailer เป็น thumbnailer สำหรับ Gnome ที่จะให้ไฟล์ Windows .exe ไอคอนขึ้นอยู่กับไอคอนแบบฝังและไอคอน "โปรแกรมไวน์" ทั่วไป หากโปรแกรมมีสิทธิ์ดำเนินการตามปกติไอคอนมาตรฐานแบบฝังจะปรากฏขึ้น thumbnailer นี้จะให้ไอคอนรูปขนาดย่อสำหรับ. jar, .py และโปรแกรมปฏิบัติการที่คล้ายกัน

มีจำหน่าย : ที่เก็บอย่างเป็นทางการ

การติดตั้ง

sudo apt-get install gnome-exe-thumbnailer

ODP / ODS / ODT และไฟล์ LibreOffice และ Open Office อื่น ๆ

ภาพรวม

คำอธิบาย: ooo-thumbnailer เป็น LibreOffice, OpenOffice.org และ Microsoft Office thumbnail thumbnail ซึ่ง Nautilus สามารถใช้ในการสร้างรูปขนาดย่อสำหรับเอกสารสเปรดชีตงานนำเสนอและภาพวาดของคุณ

ความพร้อมใช้งาน : PPA ของนักพัฒนา (เวอร์ชันล่าสุดที่เข้ากันได้กับ LibreOffice ใน Ubuntu 12.04 ขึ้นไป)

การติดตั้ง

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

แล้ว.xpmภาพล่ะ ผมถือว่าพวกเขาก็เป็น "มาตรฐาน" เป็นpng, jpgและbmpแต่ Nautilus ไม่ได้สร้างตัวอย่างสำหรับพวกเขา
MestreLion

ไฟล์ภาพ XPM แสดงผลได้ดีบน Nautilus 3.4: i.imgur.com/XYUZonV.png
Glutanimate

1
ไม่เป็นไรฉันพบว่าไม่สามารถจัดการไฟล์ที่มีความคิดเห็นก่อน/* XPM */ส่วนหัวแม้ว่าeogจะแสดงไฟล์ได้ดี
ก็ตาม

ฉันคิดว่าคุณสามารถค้นหา mimetype ของไฟล์ที่ใช้file -i FILE
วิลฟ์

1

ไฟล์ ICNS (ไอคอน Mac OSX)

ภาพรวม

Nautilus ไม่สร้างรูปขนาดย่อสำหรับไอคอน Mac OSX เนื่องจากข้อบกพร่องบางอย่างแต่มีการสนับสนุนในGdkPixbufตัว

ต้นฉบับ

นี่เป็นสคริปต์พื้นฐานในการสร้างภาพขนาดย่อสำหรับ.icnsไฟล์ รุ่นที่มีประสิทธิภาพมากขึ้นสามารถพบได้ที่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', [], [])

ติดตั้ง

สคริปต์การติดตั้งพร้อมกับ.thumbnailerไฟล์สำหรับ Nautilus มีอยู่ในที่เก็บโครงการ icns-thumbnailer

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.