Как генерировать миниатюры заранее (в основном pdf) [дубликат]

На этот вопрос уже есть ответ здесь:

У меня довольно большой набор документов (150 GiB ~5000 файлов), и я хотел бы знать, как предварительно генерировать эскизы, желательно из командной строки, чтобы при переходе в папку мне не приходилось ждать, пока они будут созданы.

2
задан 15 February 2015 в 13:01

2 ответа

Благодаря комментариям я решил использовать один из сценариев из этого сообщения recommendend AskUbuntu.

Я просто скопировал его в файл, сохранил его к моему ~ / мусорное ведро (в моем случае как генерировать-миниатюры) и вышел chmod +x на нем. Затем я просто переместился к ~ / по папке Documents и работал generate-thumbnails * Я не знаю, Сколько времени это взяло, но когда я разбудил следующее, все было хорошо.

Знайте, что Вы, возможно, должны были бы установить gir1.2-gnomedesktop-3.0:

sudo apt-get install gir1.2-gnomedesktop-3.0

Так как это не напрасно тратит время, генерируя дубликаты, это было бы низкое задание крона влияния (после первого показа).

От терминальной подсказки crontab -e Если это будет Ваш первый раз, редактируя crontab, то это попросит, чтобы Вы выбрали редактора. Я просто использую нано, и я дам команды клавиатуры для него.

Добавьте следующее в конец...

0 4 * * * /home/user/bin/generate-thumbnails /home/user*
  • Ctl o сохранит файл.
  • Ctl x выйдет. (это, у Вас есть синтаксическая ошибка, которую это сообщит и Вы можете просто crontab -e снова. Это настраивает крон для выполнения в 4:00 каждое утро.
  • Если Вы хотите изменить его или посмотреть на другие опции крона.. https://help.ubuntu.com/community/CronHowto является хорошим местом для обнаружения опций.

Главные причины для того, чтобы запустить этот скрипт:

  • это рекурсивно вызовет через подкаталоги
  • это знает о дубликатах
  • это работает одинаково хорошо на видео
  • это будет работать в другом DE's (я часто переключаюсь на основе того, что я делаю),
  • это было бы хорошо для задания крона

Вот сценарий.... (Спасибо James Henstridge!!

#!/usr/bin/env python2
import os
import sys

from gi.repository import Gio, GnomeDesktop

def make_thumbnail(factory, filename):
    mtime = os.path.getmtime(filename)
    # Use Gio to determine the URI and mime type
    f = Gio.file_new_for_path(filename)
    uri = f.get_uri()
    info = f.query_info(
        'standard::content-type', Gio.FileQueryInfoFlags.NONE, None)
    mime_type = info.get_content_type()

    if factory.lookup(uri, mtime) is not None:
        print "FRESH       %s" % uri
        return False

    if not factory.can_thumbnail(uri, mime_type, mtime):
        print "UNSUPPORTED %s" % uri
        return False

    thumbnail = factory.generate_thumbnail(uri, mime_type)
    if thumbnail is None:
        print "ERROR       %s" % uri
        return False

    print "OK          %s" % uri
    factory.save_thumbnail(thumbnail, uri, mtime)
    return True

def thumbnail_folder(factory, folder):
    for dirpath, dirnames, filenames in os.walk(folder):
        for filename in filenames:
            make_thumbnail(factory, os.path.join(dirpath, filename))

def main(argv):
    factory = GnomeDesktop.DesktopThumbnailFactory()
    for filename in argv[1:]:
        if os.path.isdir(filename):
            thumbnail_folder(factory, filename)
        else:
            make_thumbnail(factory, filename)

if __name__ == '__main__':
    sys.exit(main(sys.argv))
3
ответ дан 2 December 2019 в 02:23

сценарий Bash (благодарность Tim). Из ссылки следующий сценарий и комментарии:

for i in *.jpg
do
djpeg $i | pnmscale -xysize 48 38 | cjpeg -opti -progr -qual ‘75%’ > TN_$i
echo $i processed
done
  • Это сделает миниатюры для файлов, заканчивающихся в .jpg, и создаст thumbail с именем TN_*.jpg. Скорректируйте параметры к своей симпатии.

  • Для миниатюр, Вы довольно часто don’t хотите использовать imagemagick или преобразовать или безотносительно; для моего нормального размера (48Г — 38), это создает огромный огромный 50K jpg, когда существуют другие способы получить их очень намного меньший:

  • Это подавляет средний размер изображения к приблизительно 1K †“скорее больше подходящее для страницы миниатюр!

  • pnmscale будет установлен значением по умолчанию

  • Установка djpeg и редактирование cjpeg

    sudo apt-get install libjpeg-turbo-progs
    
  • : работа привычки с <часом> PDF

Игнорирование совета в комментарии об использовании imagemagick...

sudo apt-get install imagemagick

и использование это как похожий метод как выше, но в этом случае с помощью преобразования управляют от IM:

#!/bin/bash
FILES="$@"
for i in $FILES
do
echo "Processing image $i ..."
/usr/bin/convert -thumbnail 100X100 $i $i.png
done

Вот тщательно продуманный документ о thumbnailing, использующем IM. Можно определить высоту, ширину и партии больше. Пример из ссылки:

, Например, это преобразовывает изображения JPG в миниатюры GIF в подкаталоге "ползунков", который был просто создан 100 пикселей шириной и 100 пикселей высотой

mkdir thumbs  
mogrify  -format gif -path thumbs -thumbnail 100x100 *.jpg
<час>

, О, заголовок конкретен относительно PDF. Используя IM...

convert -thumbnail 100x100 1.pdf 1.png
1
ответ дан 6 October 2019 в 01:09

Другие вопросы по тегам:

Похожие вопросы: