此前的一篇文章提到了CAT工具的互操作性,今天再来说说图像软件的互操作性。
要实现图像软件的互操作性,首先一点是得有一个数据交换格式标准。
CAT工具中,Trados可以说是一家独大,但它仍然遵循XLIFF、TMX等数据交换标准,并且积极地兼容其它CAT软件的格式。而图像软件领域的老大自然是Adobe。提到图像编辑软件,大家会想到Photoshop,但很少知道其它软件。开源领域有不少多层图像编辑器,比如GIMP、Krita等等,但用的人相对少很多。这也使得多层图像的标准格式似乎只有PSD一种。
针对这一问题,Krita和KDE的作者与2006年提出了一种多层图像格式OpenRaster(拓展名ora)。
一个ora文件是一个zip文件,内部的文件结构如下:
example.ora
├ mimetype
├ stack.xml '描述图像信息的xml文件
├ data/
│ ├ [png格式保存的图层,命名为layer*.png,其中星号是图层的序号]
│ └ [其它数据文件]
├ Thumbnails/
│ └ thumbnail.png '缩略图,宽和高不能超过256
└ mergedimage.png '图层合并后的图像
stack.xml示例如下:
<?xml version='1.0' encoding='UTF-8'?>
<image version="0.0.3" w="300" h="177" xres="600" yres="600">
<stack>
<stack x="10">
<stack>
<layer name="OpenRaster Logo" src="data/hw.svg" x="5" y="5" />
<text x="50" y="10">Use a Rich Text XML Specification to write cool text in your OpenRaster File</text>
</stack>
</stack>
<!-- filters are syntactically permissible, but not valid for baseline -->
<layer name="layer1" src="data/image1.png" />
</stack>
</image>
目前Adobe Photoshop、Gimp和Krita均支持ora格式。但可惜的是,ora格式到现在也只是0.0.5版本的草稿阶段,很多内容都没有制定。比如文字图层就没有得到定义,文字图层都是导出为图像来进行处理的。因为不同软件有着不同的实现,对于图像处理这样的任务,很难制定统一的标准。想实现完全的互操作性是似乎是不太可能了。
在OpenRaster尚不完善的阶段,要想迁移一个软件中的图层到另一软件,可能只有使用脚本了。例如使用Photoshop的脚本将文字图层的坐标、字体设置等信息导出,然后再用Gimp的脚本导回,这个过程当然也需要制定数据交换格式。
相关链接: