imagemagick установлен, его функции и использую при составлении команд.
Но, нужно начать с начала.
Задача: ускорить печать на принтере с 2 мегабайтами оперативной памяти (такие есть принтеры у HP и Brother).
То есть нужно изображение сжать до 1 мегабайта.
gscan2pdf хранит временные файлы в tmp, формат бывает нескольких видов PNM, PGM.
Программа предоставляет переменные
%i - имя исходного файла
%o - имя выходного файла
%r - разрешение, предполагаю dpi.
если команду прописывать в пользовательские действия в программе, то текуший каталог в котором выполняются программы будет каталог из tmp.
Еще нужно определиться с действиями для сжатия изображения.
На практике вывел для себя методику эффективного сжатия с минимальными потерями в качестве.
Выгрузка в слабо сжатый формат, уменьшаем размер изображения (resize 50%), и сжимаем с потерями в конце (конвертация в JPG, степень сжатия 75%).
В итоге получается команда
convert *.pnm -resize 50% -format jpg -quality 75 *.jpg
У меня имя итогового файла получается *.jpg, а я думал звездочка заменится на исходное имя файла...
Тогда можно использовать переменные программы
convert %i -resize 50% -format jpg -quality 75 '%i'.jpg
Но этот файл не отображается в программе, остается во временной папке с аброкадаброй вместо названия (случайный набор букв).
То есть отправить на печать не получится, программа его не видит, нужно как то вернуть файл в программу.
Надо для этого использовать переменную %o, но я не понял куда её вставить...
Например так
convert %i -resize 50% -format jpg -quality 75 %o
Получилось!!!
Пока писал сообщение сам разложил всё по полочкам и получилось.
