Gimp:如何使用python脚本将图像导出到没有颜色空间信息的BMP?

时间:2015-05-28 11:55:54

标签: python gimp gimpfu

我正在为Gimp编写一个python脚本,将图像的所有图层导出到BMP。

要导出给定图层,我使用过程file_bmp_save

pdb.file_bmp_save(image, layer, filename, raw_filename)

但是此函数会保存BMP标题中的颜色空间信息。

当我手动导出BMP(File > Export)时,有一个选项

  

不写彩色空间信息

example 3

我想在我的python脚本中重现这个选项。

1 个答案:

答案 0 :(得分:3)

所以 - 我去检查了一下,确实 - 这个选项根本无法以编程方式提供。 案例是名为"色彩空间信息"在GIMP上,BMP导出过滤器实际上是版本3 BMP文件和版本4 bmp文件之间的二进制差异,该文件是早在Windows 95中引入的。

因此,我请求您重新考虑使用BMP文件的位置,这些文件需要与Pre-windows 95文件一样旧的文件版本。

也就是说,在某些时候,有GIMP黑客攻击能力的人感觉到了这种需求,并将这些v3文件的选项添加到了导出GUI中 - 但同一个人并没有为PDB保存添加第二个PDB调用:{ {1}}调用本身无法更改为额外的" dont_write_color_information"参数 - GIMP PDB调用在主要GIMP版本中保持向后兼容(这就像永远一样)。并且在2004年左右添加了第二个程序,以支持保存1995年废弃的文件版本,这将适得其反。

幸运的是,它只是在V4标题末尾写入68字节的问题 - 并且不同的偏移量记录在文件中的jus 3点。因此,编写用于将这些文件转换为所需格式的Python解决方案很容易。

如果转换更复杂,那么路径就是:向GIMP项目提交一个错误,以便可以为GUI退出选项进行编程调用(并且最好为其编写补丁并将其附加到错误,因为GIMP只是一个志愿者项目)并等待新版本的GIMP以改变为特色。在此期间,使用可以进行所需图像转换的外部程序(或您自己的GIMP修补版本)的变通方法。

但实际上,以下Python函数将在GIMP导出后转换BMP版本:

file_bmp_save

(免责声明:我刚刚使用RGB 24bpp文件对其进行了测试 - 尽管它也适用于其他格式)