Хорошо, после множества проб и ошибок я наконец понял, как преобразовать один формат файла в другой, используя только GIMP.
Это скрипт Script-Fu для преобразования в PNG:
(
let* ((filename "{{filename}}")
(output "{{output}}")
(image (car (gimp-file-load 1 filename filename)))
(drawable (car (gimp-image-get-active-layer image))))
(file-png-save-defaults 1 image drawable output output)
)
Где {{filename}}
— это входной файл, который необходимо преобразовать (например, файл jpeg), {{output}}
— это выходной файл, который вам нужен (это может быть просто то же имя файла, но с расширением PNG)
Как запустить: вероятно, его можно улучшить
gimp -i -n -f -d --batch "{{one-line script-fu}}"
Подробнее об опциях командной строки вы можете узнать в онлайн-документации GIMP.
Место, которое нужно изменить, это {{one-line script-fu}}
, и оно должно быть... однострочным! Вы можете наверное сделать все это в одном файле с помощью cmd (в случае, если вы используете Windows), но мне было проще использовать Python, поэтому вот скрипт для него:
import subprocess, os
def convert_to_png(file_dds):
#Loads the command to run gimp cli (second code block)
#Note: remove "{{one-line script-fu}}" and leave one space after the --batch
with open("gimp-convert.bat", "r") as f:
main_script = f.read()
#Prepares the Script-Fu script to be run, replacing necessary file names and makes it one-line (the firs code block)
with open("gimp-convert-png.fu", "r") as f:
script = f.read().replace("\n", " ").replace("{{filename}}", file_dds) \
.replace("{{output}}", file_dds[:-3]+"PNG").replace("\\", "\\\\").replace("\"", "\\\"")
subprocess.run(main_script + " \"" + script + "\" --batch \"(gimp-quit 1)\"",
cwd = os.getcwd(),
shell = True)
И вы должны преобразовать свой файл в PNG!
Мне это было нужно для моего проекта масштабирования текстур, весь приведенный ниже код вы можете найти здесь а>.
Протестировано с GIMP 2.10
person
OSA413
schedule
08.07.2021