图形文件作为包含一系列操作的源代码

图形文件作为包含一系列操作的源代码

这个问题只是推测,所以可能不太合适。如果你认为我应该问在哪里提出这样的问题,请随时给我重新定向。

据我所知,处理图像文件是通过对这些文件进行一系列编辑来完成的,然后这些编辑将被保存为包含新状态的新版本的文件。虽然文件本身可能是可解析的文本格式(但在 photoshop 或 GIMP 文件的情况下并非如此),并且执行的操作可能是不可撤消的,但我不知道有任何图形编辑系统的文件格式是针对一组源图像执行的一系列步骤;据我所知,大多数图像文件格式本质上是声明性的,而不是程序性的。

我的想法是,存储一组步骤而不是状态是保存图像文件的一种非常明智的方法,因为它可以保存复杂的历史记录,而无需多次保存大二进制位。这还允许 SCM 系统轻松管理版本控制,甚至减轻了锁定图像文件的需要,而这在 Photoshop 或 GIMP 中处理共享媒体时通常需要这样做。

图像的本地编译版本将作为缓存:它将保持更新并用于避免每次打开时都必须重建生成的图像的状态。

理想情况下,可以在创建最终图像时重新应用各个步骤,或修改这些步骤的参数,同时尽量减少复杂性。能够提取连续步骤并将其参数化以供将来用作宏,可​​以想象实现起来非常方便。

是否有一个有用的图像编辑系统,其工作方式与此类似?我对 缺乏多功能性感到有点恼火gimp:我希望它能更像vim

关于如何在 GIMP 中做类似事情的提示(也许使用 Python-fu)也非常受欢迎,尽管也许更适合作为评论而不是答案。

我的使用要求是开源的并在 Linux 下运行,但我有兴趣了解任何和所有以这种方式工作的系统,无论许可或可移植性状态如何。

答案1

嗯,从某种意义上说,现有的图像格式可以满足您的要求,因为位图图像不就是一系列“指令”,比如“将像素 XXX 的颜色设置为 YYY”吗?或者 SVG 图像 - 这是一个 XML 文件,其中包含诸如“从 A 到 B 画一条线”或“在点 P 处放置半径为 R 的蓝色实心圆”之类的指令。我明白您说的想要更多的东西,一种存储您实际用于创建图像的实际步骤的格式,但这可能要求有点多。我的意思是,不仅仅是在图像中,甚至在音频文件、文本文件或文字处理文档中,有没有任何有没有一种文件格式可以存储创建内容的一系列具体操作?我想不出任何格式。

还有一件事需要考虑:由创建图片的有序指令组成的图像文件格式基本上是计算机程序或脚本,而不是大多数人真正认为的图像。不过,这已经完成了。例如,对于我在网站上使用的图像,我经常喜欢创建一个包含一组将重新创建图像的命令的脚本,并将脚本保存在我的源代码控制系统或其他地方。命令本身可以是 ImageMagick 命令;我个人喜欢使用 TikZ 的 LaTeX 包。(TikZ 有一个不错的小编辑器,名为 CirKuit,可在您创建图片时提供自动更新的图片预览;它不是所见即所得的,但除此之外,它可能是我见过的最接近您所问的东西。)

答案2

已经完成了。OS X 之前的 macintosh“pict”格式曾是一系列编码的 QuickDraw 命令。当然,您也可以在 postscript 中执行非常类似的操作(即,在定义一些基元集之后,只需记录绘制图像所需的调用)。

相关内容