Closer to PSD

Log-in or register.

Closer to PSD

Published by on November 8th 2012.

Importing of PSD images is one of the most important functions of RealWorld Paint. The current version does a relatively good job importing raster layers, including some of the layer styles. Although RWPaint will never be able to import every PSD without losing anything, an improvement is planned for the next version.

PSD is a very complicated and partially undocumented format. There are numerous things I can do to improve the PSD importer, but there is only so much time. It is hard to decide, what change would make the biggest impact. That's why I like to take this use-case-centric approach. I start by finding a file that won't import correctly. Then I analyze the reasons why it won't import and fix the problems. This time, I have selected a .psd file from this tutorial by Mike Rundle.

The image in question won't open at all in the current RWPaint, because it is using 16-bits per color channel and zip compression. And so I went ahead and implemented support for importing this higher color depth and compression for the new version of RWPaint.

But that was not all. There were still problems with this file. See, it was saved in one of these newer versions of Photoshop and the "compatibility" mode was disabled. That meant, layers using vector masks were not available in raster format and hence missing. Fortunately, the upcoming RWPaint is going to support vector layers and so I went ahead and imported Photoshop layers with vector masks as RWPaint's vector layers.

The 3rd problem I had with this file was with gradients in layer styles. The current RWPaint can import gradients, but not fully, some positioning attributes may not be translated correctly. The future version should do a much better job.

And here is the result. The following .png was saved in upcoming RWPaint after importing a .psd file.

rsrc/imported-networkglobe.png image

Feel free to compare it with the original in the above mentioned tutorial. The result is still not perfect, but it is a good starting point.

So, here is the summary of the PSD import improvements:

  • Support for 16-bit, zip-compressed files.
  • Support for vector masks.
  • Improved accuracy of gradient overlays.

Despite the improvements, there are still many things that cannot be imported. One example may be layer groups, which are not supported in RWPaint (and likely never will be in the same form as in Photoshop). Another source of problems are Photoshop Fill and Opacity parameters. RWPaint does not have the Fill option. In the image above, the author is using a layer with 100% opacity, but 0% fill to apply additional inner shadow effect. This is actually a workaround, because Photoshop is unable to define 2 different inner shadows for the same layer. RWPaint would be able to do that to provide the same end result, but the end users would have to do this manually.

I should end more positively. So, yay. Improvements are coming.

Recent comments

user icon Anonymous
Vista & Win 7 icons
Select background
What about ICL files?
I wish there were...