Tomis’ Software Blog

March 16, 2008

Project File Formats

Filed under: In Development

So far, ImagePlay has had two file formats for projects, they have been called Legacy (0.1) and Binary (0.2+). The main difference between these formats was the internal markup structure. The Legacy format used an HTML-like syntax for tags, the Binary format moved to a more efficient structure. But they share one thing in common, they both use a single self-contained file.

Currently I’m working on moving from the single-file format that these formats used, and into a new package/bundle format. For those who are not familiar, packages/bundles are an idea used widely in MacOS X. They are essentially special folders which appear to the user to be one file. This makes it much easier to manage a group of files, especially if small pieces of data must change within each of those files.

Moving to a package format will make the load/save process in ImagePlay more efficient, and thusly increase performance. Instead of having to write out one monolithic file each time the user saves, only the altered pieces will be written. The ability to save to the old single-file format will probably remain in some fashion, it’s still the easiest way to pack up the included templates, so I’ll still need it for one.

Along with the new file format will come another idea which I’ve been wanting to implement for a while; non-destructive data transportation. That is to say, the idea that you can drop an image file into your project, then extract that image, and get the original image data intact. And with the switch to a package format, advanced users will be able to accomplish this without even needing to start up ImagePlay.