nho*_*owe 4 imagemagick script-fu xcf irfanview
我有一个以 .xcf 格式保存的图像文件夹,我想将它们批量转换为更方便的格式。我尝试了一些没有效果的方法:
我曾经使用 IrfanView 执行此操作,但现在不再有效,因为它拒绝打开最新版本的 .xcf 文件。
我尝试使用 IMageMagick mogrify 和 Convert,但它们都给我“内存分配失败”——也许它们也不理解新格式?
我尝试了 xcf2png 命令行工具,在创建空图像之前,它给了我消息“警告:不支持 XCF 版本 11(无论如何尝试...)”。
我最后的希望是编写一个可以在最新版本的 Gimp 本身中运行的批量转换脚本,但我对 ScriptFu 没有任何经验。我找到了一个可以转换其他一些文件类型的脚本(http://beefchunk.com/documentation/lang/gimp/GIMP-Scripts-Fu.html#convertjpg-script-fu),但不太具备修改它的知识。有人知道读取 xcf 和写入 png 的正确调用/参数吗?
这是一个独立的 bash 脚本,它应该将当前目录中的所有 xcf 文件转换为 png 格式副本。它应该可以在任何安装了 Gimp 的 Linux 计算机上运行。它不需要在脚本目录中进行任何安装:
#!/bin/bash
# xcfs2png.sh
# Invoke The GIMP with Script-Fu convert-xcf-png
# No error checking.
{
cat <<EOF
(define (convert-xcf-png filename outpath)
(let* (
(image (car (gimp-xcf-load RUN-NONINTERACTIVE filename filename )))
(drawable (car (gimp-image-merge-visible-layers image CLIP-TO-IMAGE)))
)
(begin (display "Exporting ")(display filename)(display " -> ")(display outpath)(newline))
(file-png-save2 RUN-NONINTERACTIVE image drawable outpath outpath 0 9 0 0 0 0 0 0 0)
(gimp-image-delete image)
)
)
(gimp-message-set-handler 1) ; Messages to standard output
EOF
for i in *.xcf; do
echo "(convert-xcf-png \"$i\" \"${i%%.xcf}.png\")"
done
echo "(gimp-quit 0)"
} | gimp -i -b -
Run Code Online (Sandbox Code Playgroud)
已在 Kubuntu 20.04 上使用 Gimp v2.10.18 进行测试。感谢 pixls.us 的 patdavid 提供原始脚本。
| 归档时间: |
|
| 查看次数: |
1774 次 |
| 最近记录: |