Я хочу сделать некоторую операцию на некоторых изображениях с помощью GIMP через командную строку на Ubuntu. Операции, которые я хочу сделать:
Как я могу сделать их использующий командную строку?
Откройтесь изображение действительно легко (image.png
изображение, которое Вы хотите открыть),
gimp image.png
Преобразуйте изображение RGB в Шкалу полутонов:
Создайте файл Сценария-Fu GIMP (названный здесь dmmConvertPNGtoGrayscale.scm
и сохраненный в $HOME/.gimp-2.8/scripts
) :
; dmmPNGtoGrayscale - GIMP Script-Fu to convert a PNG image to Grayscale
; This Script-Fu must be put in The GIMP's script directory
; (e.g., $HOME/.gimp-1.2/scripts).
; For command-line invocation, use the shell script rgbtogs.sh
; For interactive invocation, run The GIMP and go to
; Xtns -> Script-Fu -> dmm
;
(define (dmmPNGtoGrayscale infile outfile)
(let* ((image (car (file-png-load 1 infile infile)))
(drawable (car (gimp-image-active-drawable image)))
)
(gimp-convert-grayscale image)
(file-png-save 1 image drawable outfile outfile
1 0 0 0 0 0 0 )
; 1 Adam7 interlacing?
; 0 deflate compression factor (0-9)
; 0 Write bKGD chunk?
; 0 Write gAMMA chunk?
; 0 Write oFFs chunk?
; 0 Write tIME chunk? ?? backwards in DB Browser
; 0 Write pHYS chunk? ?? backwards in DB Browser
)
)
(script-fu-register ; I always forget these ...
"dmmPNGtoGrayscale" ; script name to register
"<Toolbox>/Xtns/Script-Fu/dmm/dmmPNGtoGrayscale" ; where it goes
"dmm PNG (RGB or Indexed) to Grayscale" ; script description
"David M. MacMillan" ; author
"Copyright 2004 by David M. MacMillan; GNU GPL" ; copyright
"2004-02-08" ; date
"" ; type of image
SF-FILENAME "Infile" "infile.png" ; default parameters
SF-FILENAME "Outfile" "outfile.png"
)
И запустите его с помощью этого сценария (я назвал его rgbtogs.sh
например):
# rgbtogs.sh
# Invoke The GIMP with Script-Fu dmmPNGtoGrayscale.scm
# No error checking.
if [ -e $1 ]
then
echo "Usage: rgbtogs.sh degrees filebasename"
echo "Error: Parameter (filename base) required"
exit 1
fi
gimp -c -i -d -b "(dmmPNGtoGrayscale \"$1.png\" \"$1-gray.png\")" "(gimp-quit 0)"
Дайте выполнение сценарию и запустите его:
chmod +x rgbtogs.sh
./rgbtogs.sh image
Преобразуйте изображение PNG в JPEG (или JPG):
Создайте файл Сценария-Fu GIMP (названный здесь dmmConvertPNGtoJPG.scm
и сохраненный в $HOME/.gimp-2.8/scripts
) :
; dmmConvertPNGtoJPG.scm - GIMP Script-Fu to Convert PNG to JPG
; This Script-Fu must be put in The GIMP's script directory
; (e.g., $HOME/.gimp-1.2/scripts).
; For command-line invocation, use the shell script pngtojpg.sh
; For interactive invocation, run The GIMP and go to
; Xtns -> Script-Fu -> dmm
;
(define (dmmConvertPNGtoJPG infile outfile)
(let* ((image (car (file-png-load 1 infile infile)))
(drawable (car (gimp-image-active-drawable image)))
)
(file-jpeg-save 1 image drawable outfile outfile
0.75 0 1 1 "GIMP" 0 1 0 0 )
; 0.75 quality (float 0 <= x <= 1)
; 0 smoothing factor (0 <= x <= 1)
; 1 optimization of entropy encoding parameter (0/1)
; 1 enable progressive jpeg image loading (0/1)
; "xxxx" image comment
; 0 subsampling option number
; 1 force creation of a baseline JPEG
; 0 frequency of restart markers
; in rows, 0 = no restart markers
; 0 DCT algoritm to use
)
)
(script-fu-register ; I always forget these ...
"dmmConvertPNGtoJPG" ; script name to register
"<Toolbox>/Xtns/Script-Fu/dmm/dmmConvertPNGtoJPG" ; where it goes
"dmm Convert PNG to JPG" ; script description
"David M. MacMillan" ; author
"Copyright 2004 by David M. MacMillan; GNU GPL" ; copyright
"2004-01-27" ; date
"" ; type of image
SF-FILENAME "Infile" "infile.png" ; default parameters
SF-FILENAME "Outfile" "outfile.png"
)
И запустите его с помощью этого сценария (я назвал его pngtojpg.sh
например):
# pngtojpg.sh
# Invoke The GIMP with Script-Fu dmmConvertPNGtoJPG.scm
# No error checking.
if [ -e $1 ]
then
echo "Usage: pngtojpg.sh filebasename"
echo "Error: Parameter 1 (filename base) required"
exit 1
fi
gimp -c -i -d -b "(dmmConvertPNGtoJPG \"$1.png\" \"$1.jpg\")" "(gimp-quit 0)"
Дайте выполнение сценарию и запустите его:
chmod +x pngtojpg.sh
./pngtojpg.sh image
Источник: http://beefchunk.com/documentation/lang/gimp/GIMP-Scripts-Fu.html
NB: в файле Сценария-Fu GIMP, можно удалить все строки, который начинается ;
символ (или все справа на этом символе), это просто комментарии
NB: они .scm
сценарий-fu был сделан первоначально для GIMP 1.2, но я протестировал с GIMP 2.8 и нет никакой проблемы
Я не знаю, как использовать Калеку для этой задачи, но на самом деле я думаю инструменты от пакета imagemagick
лучший выбор для таких задач CLI. Этот пакет широко используется в качестве инструмента преобразования на приложениях веб-сервера как MediaWiki и WordPress, также это - бэкэнд для некоторых операций, выполненных графическими приложениями такой PhotoShop. Сначала необходимо установить пакет:
sudo apt install imagemagick
Затем используйте следующую команду для выполнения задачи (ссылка):
convert input-file.png -set colorspace Gray -separate -average output-file.jpg
Если необходимо преобразовать все файлы PNG в текущем каталоге, можно использовать цикл как это:
for f in *.png; do convert "$f" -set colorspace Gray -separate -average "${f%.*}.jpg"; done
Можно работать gimp -h
получить различные варианты availabe для калеки
1. Откройте изображение gimp -n image_name.xxx
2. Преобразуйте изображение в шкалу полутонов, я понятия не имею, является ли это возможный Калека использования, перемещаются по этим ссылкам: https://www.gimp.org/tutorials/Basic_Batch/
3.convert png отображают к jpeg
Я предлагаю использовать convert
командная строка, которая является частью ImageMagick
convert image1.xxx image2.yyy