When people make graphics, they rely on layers. From digital artists to web designers, layers have become a necessity.

Layers let you put graphics on top of other graphics and move them independently. It's a major improvement from the days of Microsoft Paint, where moving one part of the picture would overwrite all the pixels below it.

Hierarchical layers as shown in Krita.

This is critical to the workflow of most designers and artists, but there is a major problem.

The dreaded *.psd

Photoshop's internal file format, the *.psd, has become the industry standard for layered graphics files. Unfortunately, it's a very complex format and Adobe refuses to reveal how it works. Other programs have tried to implement it by reverse-engineering, but none fully support it.

Krita's documentation describes this problem quite well:

.psd is Photoshop's internal file format. For some reason, people like to use it as an interchange format, even though it is not designed for this.

.psd, unlike actual interchange formats like *.pdf, *.tiff, *.exr, *.ora and *.svg doesn't have an official spec online. Which means that it needs to be reverse engineered. Furthermore, as an internal file format, it doesn't have much of a philosophy to it's structure, as it's only purpose is to save what photoshop is busy with, or rather, what all the past versions of photoshop have been busy with. This means that the inside of a psd looks somewhat like photoshop's virtual brains, and psd is in general a very disliked file-format.

Due to *.psd being used as an interchange format, this leads to confusion amongst people using these programs, as to why not all programs support opening these. Sometimes, you might even see users saying that a certain program is terrible because it doesn't support opening psds properly. But as psd is an internal file-format without online specs, it is impossible to have any program outside it support it 100%.

Krita supports loading and saving raster layers, blending modes, layerstyles, layer groups, and transparency masks from psd. It will likely never support vector and text layers, as these are just too difficult to program properly.

We recommend using any other file format instead of psd if possible, with a strong preference towards *.ora or *.tiff.

As a working file format, psds can be expected to become very heavy and most websites won't accept them.

In effect, it is nearly impossible for people who use Photoshop to work alongside users of other programs. At this stage, the *.psd is functionally the same as DRM. It's troubling because:

  1. Photoshop costs money. Professional designers may not care, but the *.psd format has seeped into other parts of life. The cost creates a major barrier of entry for people.
  2. Photoshop is proprietary software. The inner-workings of Photoshop are hidden from users. There's no way to study or improve it. People who care about privacy and software freedom will want to avoid using it.
  3. The *.psd format has become ubiquitous. All sorts of projects rely on it now, which greatly restricts open collaboration.
  4. There's no way around it. Photoshop is the only program capable of properly reading *.psd files. It's vendor lock-in that can't be side-stepped.

Enter OpenRaster (*.ora)

OpenRaster is an open file format proposed for the common exchange of layered images between raster graphics editors (see: OpenRaster).

OpenRaster is new layered image format with an online specification and a thoughtful design. It is meant as an interchange format, meaning that many graphics programs can easily adopt it and export it, and it will work the same in all of them.

It seems pretty clear that Photoshop isn't planning to reveal a spec for *.psd, and it's a mess of a format anyway. So as a compromise, I think Photoshop should include import/export support for *.ora files. This way, instead of reverse-engineering Photoshop, we can ask Photoshop users to export their files in a format everyone can access.

This will never happen though unless there's such a high level of demand that Adobe fears losing profits. We'll either need a killer project that provides *.ora files only, or a community-run plugin for Photoshop that enables this conversion. In the meantime, I hope that others will join me in abandoning the *.psd and using *.ora whenever possible.