Я много рисую с помощью Clip Studio Paint, которая почти безупречно работает с вином, но единственное серьезное предостережение в том, что исходные файлы имеют формат, не поддерживающий миниатюры в linux (насколько я могу судить) .
Для большинства файлов у меня будет 2 версии. File.clip (формат CSP) и File.png. Я хотел бы использовать .png (или его эскиз) в качестве эскиза для File.clip.
Итак, как бы вы добавили миниатюру в случайный файл из командной строки?
Я работаю в Ubuntu 18.04 и Nautilus.
Редактировать: Изменено описание того, что я хочу сделать, чтобы сделать его более понятным.
Хорошо, так насколько я понимаю, Вы стремитесь создать миниатюру файла при помощи другого файла (созданный очевидно).
Мы можем попробовать что-то вроде этого:
#!/bin/bash
# Based on CC-BY 2016 Marcin Kaminski https://askubuntu.com/users/98096/marcin-kaminski
# https://askubuntu.com/a/201894/216568
# USAGE: mkthumb.sh [-s] [-r] <path> [path]
# create nautilus thumbnails for clips in the directories (and their
# sub-directories) given as parameters.
# -s is used to skip generating thumbnails that already exist
skip_existing=0
if [[ "${1}" == "-s" ]]; then
skip_existing=1
shift
fi
maxdepth="1"
if [[ "${1}" == "-r" ]]; then
maxdepth="9999"
shift
fi
mkImageThumb() {
size="${3}"
file="${1}"
dest="${2}"
convert -thumbnail ${size}x${size} "${file}[0]" "${dest}" &>/dev/null
if (( $? == 0 )); then
echo "OK ${file} [${dest}]"
else
echo "FAIL ${file}"
fi
}
OLDIFS="${IFS}"
IFS=$'\n'
for dir in $@; do
realdir=`realpath "${dir}"`
echo "Processing directory ${realdir}"
for file in $(find "${realdir}" -maxdepth ${maxdepth} -regextype posix-egrep -iregex '.*\.clip'); do
md5=$(echo -n "${file}" | perl -MURI::file -MDigest::MD5=md5_hex -ne 'print md5_hex(URI::file->new($_));')
image=$(dirname "${file}")/$(basename "${file}" .clip).png
dest="${HOME}/.cache/thumbnails/normal/${md5}.png"
if [[ ! -f "${dest}" || "${skip_existing}" != "0" ]]; then
mkImageThumb "${image}" "${dest}" 128
else
echo "SKIP ${file}"
fi
dest="${HOME}/.cache/thumbnails/large/${md5}.png"
if [[ ! -f "${dest}" || "${skip_existing}" != "0" ]]; then
mkImageThumb "${image}" "${dest}" 256
else
echo "SKIP ${file}"
fi
done
done
IFS="${OLDIFS}"
Этот сценарий возьмет целый каталог и генерирует необходимые миниатюры (я не протестировал сценарий теперь, но он должен).