Как преобразовать XCF в PNG с помощью GIMP из командной строки?

Не серовато-синий Java, но можно столкнуться с проблемами, где Вы записали что-то в файл, но он еще не был на самом деле записан - это могло бы быть в кэше где-нибудь, и читающий из того же файла может не на самом деле дать Вам новую информацию.

Короткая версия - сброс использования () или безотносительно соответствующего системного вызова должен гарантировать, что Ваши данные на самом деле записаны в файл.

Примечание я не говорю о дисковом кэше уровня ОС - если Ваши данные входят здесь, это должно появиться в чтении () после этой точки. Может случиться так, что сам язык записи кэшей, ожидая, пока буфер не заполняется или файл, сбрасывается/закрывается.

28
задан Community 23 May 2017 в 11:33
поделиться

2 ответа

Перед тем, как jsbueno опубликовал свой ответ, я также пытался спросить на IRC-канале #gimp. Я был направлен на этот поток на Gimptalk , который содержит следующий код:

gimp -n -i -b - <<EOF
(let* ( (file's (cadr (file-glob "*.xcf" 1))) (filename "") (image 0) (layer 0) )
  (while (pair? file's) 
    (set! image (car (gimp-file-load RUN-NONINTERACTIVE (car file's) (car file's))))
    (set! layer (car (gimp-image-merge-visible-layers image CLIP-TO-IMAGE)))
    (set! filename (string-append (substring (car file's) 0 (- (string-length (car file's)) 4)) ".png"))
    (gimp-file-save RUN-NONINTERACTIVE image layer filename filename)
    (gimp-image-delete image)
    (set! file's (cdr file's))
    )
  (gimp-quit 0)
  )
EOF

Этот скрипт обрабатывает файлы xcf, а затем для каждого файла загружает файл, объединяет видимые слои , сохраняет результат в формате PNG и «выгружает» изображение. Наконец, он выходит из GIMP. Глобальный подход используется, чтобы избежать запуска GIMP для каждого изображения. Это также обходит проблему получения параметров из оболочки в gimp.

Я публикую этот ответ на тот случай, если кому-то понадобится способ сделать это без использования GIMP-Python (возможно, потому что он не установлен).

24
ответ дан 28 November 2019 в 03:03
поделиться

Использовать xcftools

Возможно, что этот инструмент не был доступен (или в любом случае широко известен) в то время, когда этот вопрос был задан изначально, но команда терминала xcf2png из пакета xcftools делает именно то, что вы просите, и это очень хорошо. Я использую его для своих дипломных работ и буду моим выбором для этого вопроса.

Из документации:

Это набор быстрых инструментов командной строки для извлечения информации из собственного формата файлов Gimp XCF.
Эти инструменты предназначены для эффективного использования многоуровневых файлов XCF в качестве источников в системе сборки, использующей «make» и аналогичные инструменты для управления автоматической обработкой графики.
Эти инструменты работают независимо от движка Gimp и не требуют даже установки Gimp.

«xcf2png» преобразует файлы XCF в формат PNG, при необходимости выравнивая слои. Информация о прозрачности может быть сохранена в изображении, или цвет фона может быть указан в командной строке.


(PS. Я заметил xcftools, упомянутый в комментариях сразу после того, как решил опубликовать ответ об этом, но я все равно публикую, так как этот комментарий было легко скучаю (я видел это, потому что специально проверил это), и я думаю, что xcftools заслуживает правильного места для ответа, так как это действительно самый подходящий ответ на данный момент.)
7
ответ дан 28 November 2019 в 03:03
поделиться
Другие вопросы по тегам:

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