我正在为Gimp编写一个python脚本,将图像的所有层导出到BMPs。在
要导出给定层,我使用file_bmp_save
过程:
pdb.file_bmp_save(image, layer, filename, raw_filename)
但是这个函数将颜色空间信息保存在BMP标题中。在
当我手动导出BMP(File > Export
)时,有一个选项
do not write color space information
See screen capture
我想在python脚本中重现这个选项。在
Tags:
所以-我去检查了一下,事实上-这个选项在程序上根本不可用。 例如,GIMP BMP export filter上名为“颜色空间信息”的块实际上是版本3 BMP文件与版本4 BMP文件之间的二进制差异,后者早在Windows95就已引入。在
所以,我请求你重新考虑一下你在哪里使用BMP文件,这些文件需要像windows95之前的文件一样旧。在
这就是说,在某个时候,有GIMP黑客功能的人觉得有必要,于是将这些v3文件的选项添加到导出GUI中——但是同一个人没有费心为PDB save添加第二个PDB调用:
file_bmp_save
调用本身不能被更改为具有额外的“dont_write_color_information”参数-GIMP PDB调用被保留跨主要GIMP版本向后兼容(就像forever一样)。另外,在2004年、2005年增加第二个过程来支持保存1995年过时的文件版本,将会适得其反。在幸运的是,在V4头文件的末尾写入了68个字节,不同的偏移量记录在文件中的ju 3个点上。因此,很容易编写一个Python解决方案来将这些文件转换为您需要的格式。在
如果转换更复杂,那么路径应该是:用GIMP项目提交一个bug,这样就可以对GUI exiting选项进行编程调用(最好编写该漏洞的补丁,并将其附加到bug上,因为GIMP是一个只供志愿者使用的项目),然后等待GIMP的新版本。同时,使用一个可以进行所需图像转换的外部程序(或您自己的GIMP补丁版本)的解决方案。在
尽管如此,以下Python函数将在由GIMP导出BMP版本后转换它:
(免责声明:我刚刚用一个RGB 24bpp文件测试了这一点,尽管它也适用于其他格式)
相关问题 更多 >
编程相关推荐