На этот вопрос уже есть ответ здесь:
У меня довольно большой набор документов (150 GiB ~5000 файлов), и я хотел бы знать, как предварительно генерировать эскизы, желательно из командной строки, чтобы при переходе в папку мне не приходилось ждать, пока они будут созданы.
Благодаря комментариям я решил использовать один из сценариев из этого сообщения 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*
crontab -e
снова. Это настраивает крон для выполнения в 4:00 каждое утро.Главные причины для того, чтобы запустить этот скрипт:
Вот сценарий.... (Спасибо 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))
сценарий 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