如何从命令行使用 GIMP 将 XCF 转换为 PNG?

2023-12-22

作为构建过程的一部分,我需要将许多 XCF(GIMP 的本机格式)图像转换为 PNG 格式。我确信使用 GIMP 的批处理模式应该可以实现这一点,但我已经忘记了我以前知道的所有 script-fu。

我的输入图像有多个图层,因此我需要相当于“合并可见图层”的批处理模式,然后是“另存为 PNG”。另请注意,我无法安装任何东西~/.gimp*/scripts/— 我需要一个独立的命令行,或者一种在源代码树中安装脚本的方法。

请注意,虽然这类似于这个问题 https://stackoverflow.com/questions/630405/converting-xcf-and-other-files-using-command-line-with-gimp,我有一个额外的限制,我需要使用 GIMP 来完成此操作。我尝试了当前版本的 ImageMagick,但它破坏了我的测试图像。


在 jsbueno 发布他的答案之前,我也尝试过在 #gimp IRC 频道上提问。我被引导至Gimptalk 上的这个帖子 http://www.gimptalk.com/index.php?/topic/46715-batch-convert-xcf-to-png/page__p__354668#entry354668其中包含以下代码:

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

这个 scriptfu 会查找 xcf 文件,然后为每个文件加载文件,合并可见图层,将结果保存为 PNG,然后“卸载”图像。最后,它退出 GIMP。 glob 方法用于避免为每个图像启动 GIMP。它还回避了从 shell 获取参数到 gimp 的问题。

我发布这个答案只是为了以防万一有人需要一种不使用 GIMP-Python 的方法来做到这一点(可能是因为它没有安装)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从命令行使用 GIMP 将 XCF 转换为 PNG? 的相关文章

  • 如何使用 PHP 调整图像大小? [复制]

    这个问题在这里已经有答案了 可能的重复 将图片调整为固定尺寸 如何在 PHP 中调整图像大小 Try GD 和图像函数 或者 如果您想要的不仅仅是这些 像 ImageMagick 这样的库
  • 将具有不透明度的图像分层在另一个图像的顶部。 - OpenCV

    Edit 任何有类似问题的人 我找到了另一个答案here一个很棒的 Python 解决方案 利用了 NumPy 的速度 请考虑以下问题 我有两张图像 尺寸相同 一种是具有不同不透明度层的红色方块 第二个是蓝色正方形 比红色小 没有不透明度
  • 调整 BufferedImages 的大小并将其存储到 JPG 图像黑色背景的文件结果中

    我有以下代码 import java awt Graphics2D import java awt Image import java awt image BufferedImage import java io File import j
  • GIMP的图层合成/混合方法

    在我寻求为 Matlab 中的图像混合工具添加 Alpha 功能时 我遇到了一些障碍 其中 我一直在使用these http ssp impulsetrain com porterduff html links http www adobe
  • 如何使用 FFMPEG+Imagemagick 从图像/视频中提取有组织的调色板?

    我使用 FFMPEG 和 Imagemagick 通过 Windows 批处理文件从图像或视频中提取调色板 get current folder name for in do set CurrDirName nx get current f
  • 使用 GDI+ 将修改后的图像保存到原始文件

    我正在从文件加载位图图像 当我尝试将图像保存到另一个文件时 出现以下错误 GDI 中发生一般错误 我相信这是因为文件被图像对象锁定 好的 所以尝试调用 Image Clone 函数 这仍然锁定文件 唔 接下来 我尝试从 FileStream
  • PHP/JS - 动态创建缩略图或存储为文件

    对于图像托管 Web 应用程序 对于我存储的图像 是否可以使用 PHP 或其他方式 动态创建缩略图 或者我应该将 1 个或多个不同大小的缩略图保存到磁盘并加载它们 任何帮助表示赞赏 将缩略图保存到磁盘 图像处理需要大量资源 并且根据图像的大
  • PHP ImagickDraw 与概述文本问题

    我正在学习和练习我的 Imagick 技能 我在使用 Imagick 描边绘制轮廓文本时遇到问题 我想实现此图像上可见的效果 流行的互联网模因 这是我到目前为止的代码 draw new ImagickDraw outputImage new
  • 如何对图像进行高质量缩放?

    我正在编写一些代码来在 C C 中缩放 32 位 RGBA 图像 我写了一些尝试 取得了一定的成功 但速度很慢 最重要的是 尺寸图像的质量不可接受 我将 OpenGL 即我的显卡 缩放的相同图像与我的例程进行了比较 结果发现它们的质量相差很
  • 如何在矩阵或二进制图像中绘制多边形以便使用图像处理功能?

    我正在开发一个 matlab 程序 其中使用多边形 凹或凸 我需要在多边形上使用图像处理函数 如 imdilate 或 imerode 等 为此 我应该将多边形转换为图像 我想知道是否有一种方法可以直接在二进制矩阵中绘制多边形 1 代表前景
  • 计算图形的方向以将其拉直(在Python中)

    我有一个计算图形方向的代码和一个根据计算出的方向拉直图形的函数 当我运行代码时 方向似乎很好 但是当函数尝试拉直图形时 图形看起来像是变成了另一种形状 代码中可能有什么问题吗 代码 import numpy as np import mat
  • 多页 tiff 的简单 WPF 页面选择

    我正在制作一个基本的 Tiff 查看器 需要能够选择要查看的页面 在 Winforms 中 我可以使用 selectActiveFrame 所以我想知道是否有一个与此等效的 WPF 谢谢 编辑 在winforms中 我在selectActi
  • php 在移动到另一个文件夹之前操作 tmp 文件夹中上传的图像/文件

    我一直在以通常的方式上传后处理图像文件 例如将文件从 tmp 文件夹移动到网站的首选文件夹 现在我想通过将图像保存在临时文件夹中来操作图像 一旦我完成了它 我想将其移动到首选文件夹 我想做的是 显示一个非常简单的自定义文件上传对话框 选择图
  • 在 3D 空间中旋转图像的一部分

    设置如下 这是一个电子商务艺术网站 其中一些绘画是画布转移 这幅画环绕画布的侧面 顶部和底部 我们拥有整幅画的高分辨率图像 但我们想要显示的是图像的准 3D 表示 您可以在其中看到画作的侧面如何环绕画布 这是我正在谈论的内容的粗略草图 我的
  • 没有.net库的图像裁剪C#

    谁能建议如何裁剪图像 例如 jpeg 而不使用任何 NET 框架结构 仅使用原始字节 因为这是 Silverlight 中唯一 的方法 或者指向一个图书馆 我不关心渲染 我想在上传之前操作 jpg Silverlight 中没有可用的 GD
  • 是否可以创建圆形(或任何其他非矩形)图像?

    我看到的所有圆盘形图像实际上都在一个矩形框内 并且侧面 下图中的黑色部分 是透明的 是否有可能拥有圆形画布本身 或者图像总是被设计成矩形 If yes how 你是对的 任何非矩形图形确实都存在于与轴对齐的边界矩形内 这样做是因为矩形处理起
  • 使用Imagemagick,如何裁剪白色背景?

    假设我有一个充满标志的目录 大约 200 个 每个标志都有这个边框 上下 12 像素 左右 1 像素 像这样 我如何使用 imagemagick 来 将每个 PNG 图像从 64x64 裁剪到 60x40 你有自动裁剪 mogrify tr
  • 如何快速知道Gimp中的图层尺寸?

    每次我想知道 Gimp 中的图层尺寸时 我都会打开 缩放图层 对话框来获取它 有没有更好的方法可以一目了然 可能是一些配置选项将其显示在图层名称的底部 右侧 或底部栏中 也许这可能是 Gimp 功能请求 谢谢你 GIMP 确实有方法配置状态
  • 一次另存为多个文件(GIMP)[关闭]

    Closed 这个问题是与编程或软件开发无关 help closed questions 目前不接受答案 我有一系列 xcf我想另存为的图像 png 我可以打开每个文件并另存为 png但由于图像较多 因此需要相当长的时间 有没有一种方法可以
  • 在 Android 中将图像添加到画布

    今天是个好日子 我希望您能帮助我理解如何在视图上实现的 OnTouchEvent 上将图像添加到画布中的概念 到目前为止 这就是我想出的 parent是在此自定义视图中实例化并添加到的活动 Override protected void o

随机推荐

  • 如何停止 Tomcat 日志记录?

    Tomcat自动进行日志记录 日志文件都在 logs目录 据我所知 日志记录属性是 conf logging properties 我怎样才能停止所有日志记录 要停止访问日志 默认 tomcat 设置 请转到 conf server xml
  • 如何检测按键

    我想创建要在其中配置热键快捷键的表 我有这个简单的表 public static final String Column1MapKey A public static final String Column2MapKey B private
  • 获取模板类型的类型名称,无需类定义

    我正在尝试编写一个与以下内容一起使用的模板包装器smart ptr类型并在某些情况下需要抛出异常 对于这种情况 我想包含类所包装的类型的名称 由于我正在使用智能指针 因此只有前向声明可用于该类型 因此 基本问题是如何在没有可用定义的情况下获
  • Python - 请求被 Cloudflare 阻止

    我正在尝试登录一个网站 当我查看 print g text 时 我没有返回我期望的网页 而是返回一个 cloudflare 页面 上面写着 访问之前检查您的浏览器 import requests import time s requests
  • 如何在 typescript / Angular 中设置 html 元素的样式

    我试图将属性设置为 html 元素但出现错误类型 HTMLCollectionOf 不可分配给类型 HTMLElement 这是我的打字稿代码 let elem HTMLElement document getElementsByClass
  • 自动完成textview谷歌地点API

    我跟着本教程 http wptrafficanalyzer in blog android autocompletetextview with google places autocomplete api 使用 google place a
  • 无法与 Cordova / Phonegap helloworld 一起使用服务

    我已经安装了 Android SDK Ant cordova 3 4 1 设置 PATH 变量 android ant cordova命令可用 在 cordova CLI 的末尾 有以下示例用法 Example usage cordova
  • 在matlab中计算两幅图像之间的欧氏距离

    我想在Matlab中计算两个图像之间的欧几里德距离 我找到了一些例子并尝试过 但它们不正确 该欧氏距离的结果应介于0 and 1但我通过两种不同的方式得出了不同的解决方案 第一个算法给我一个 4 位数字 例如2000和其他像这样的数字 通过
  • 当 R 编译要在包中使用的 C++ 代码时,如何将标志传递给 R?

    我正在尝试在 R 包中使用 OpenCV 中的一些代码 并使用 Rcpp 来构建包 当我在我的机器上编译c代码时 它工作正常 例如 我在本地使用以下语法来编译facedetect cpp代码 g pkg config cflags open
  • 跳过 Tensorflow 中不存在或损坏的文件

    我有一些包含图像文件路径和功能的文件 其中一些图像可能丢失或损坏 我想知道如何通过跳过这些图像并将它们从队列中删除来稳健地处理错误 我注意到 简单地捕获错误并继续将导致队列输出相同的图像 因此它会在同一图像上重复出错 有没有办法在错误时使图
  • TinyMCE 堆栈类

    我使用 TinyMCE 4 作为我的默认编辑器 在配置中我指定了样式格式 除了一件事之外 它完全有效 它堆叠类 我的风格格式 style formats title Heading 2 block h2 classes heading 02
  • 使用 LINQ 使用特定范围的数字填充列表

    为了填充一个List
  • 如何使用封闭类的类型键入提示方法?

    我在 Python 3 中有以下代码 class Position def init self x int y int self x x self y y def add self other Position gt Position re
  • 成本较低的哈希算法是什么?

    我对哈希算法了解不多 在将文件转发到远程系统 有点像 S3 之前 我需要计算 Java 中传入文件的哈希值 该系统需要 MD2 MD5 SHA X 中的文件哈希值 计算此哈希值不是出于安全原因 而只是为了一致性校验和 我能够在转发文件时使用
  • 打开本机应用程序。来自野生动物园

    我知道 iPhone 应用程序 像沙箱一样操作 这意味着他们无权访问其他应用程序的文件 我还成功地使用以下命令从 Native App 在 Safari 中打开了一个网站 openURL NSURL URLWithString Websit
  • 禁用 web.config 继承?

    我的网站根目录中有一个内容管理应用程序 我尝试在子文件夹下使用另一个应用程序 计费应用程序 不幸的是 根站点的 web config 干扰了子应用程序 有没有办法只禁用子文件夹的 web config 继承 Update 如链接所示史蒂芬
  • 可以从 UIView 复制 CALayer 吗?

    这是我的设置 我有一个 CALayer 我想向其中添加子层 我通过设置 UILabel 创建这些子层 然后将 UILables 层添加到我的主层 当然 这会使沉重的 UILabel 对象在后台徘徊 是否可以从 UIView 获取图层及其所有
  • 在 OData 中,有没有办法按数组中的第一个元素进行排序?

    我有一个 OData 4 端点 用于在表中显示数据 其中一列包含一组由我的元素内的字符串数组连接而成的数据 有没有办法按数组中的第一个元素排序 我的元素可能如下所示 FirstName John MiddleNames Harry Bobb
  • 如何获取 Windows 8 应用程序的方法名称

    如何在 win 8 WinRT 应用程序中获取当前方法名称 早期在 wp7 中我们可以使用System Reflection MethodBase GetCurrentMethod Name但它不再存在了 谢谢 是的 NETCore 缺少很
  • 如何从命令行使用 GIMP 将 XCF 转换为 PNG?

    作为构建过程的一部分 我需要将许多 XCF GIMP 的本机格式 图像转换为 PNG 格式 我确信使用 GIMP 的批处理模式应该可以实现这一点 但我已经忘记了我以前知道的所有 script fu 我的输入图像有多个图层 因此我需要相当于