PSD support

From GIMP Developer Wiki
Revision as of 11:38, 17 November 2018 by Prokoudine (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

GIMP supports both opening and exporting of PSD files. However, this support comes with various limitations due to multiple reasons. This page lists unsupported features and provides an insight into further work on better PSD support.

PSB files

GIMP doesn't yet support PSB files.

Prerequisites: none known. An interested developer can hack on that at any time.

Image modes

GIMP doesn't support LAB, CMYK, Bitmap, and Duotone modes. We aren't convinced that we need to implement those exactly the way Photoshop does it. Space-specific processing with filters can be accessible without prior conversion to a particular image mode.

Prerequisites: none known, but this probably needs an extensive offline discussion.

Layers

Smart objects / Layer clones

Support for layer clones is likely to be added along with non-destructive editing (scheduled for v3.2) or soon thereafter. Then this feature can be added to the PSD plug-in as well.

Prerequisites: non-destructive editing (v3.2).

Vector layers

An initial back-end code for vector layers has been available since 2006, but there is no user interface. Hence we cannot support that in PSD files yet.

Prerequisites: complete vector layers implementation in GIMP. An interested developer can hack on that at any time.

Fill layers

Support for fill layer is likely to be added along with non-destructive editing (scheduled for v3.2) or soon thereafter. Then this feature can be added to the PSD plug-in as well.

Prerequisites: non-destructive editing (v3.2).

Adjustment layers and layer effects

GIMP doesn't yet support adjustment layers and layer effects, so it cannot directly read those from PSD or export those to PSD.

A temporary workaround is available since v2.10.6: you can open PSD files saved with backwards compatibility, where non-destructive changes are flattened to a single layer.

Please note, that since 2.10, GIMP has an API for attaching filters to layers, which is a foundation work for further development.

Prerequisites: release of v3.0. Non-destructive editing is primary objective of v3.2.

Text layers

GIMP doesn't yet allow editing the contents of text layers in PSD files. The PSD parser in our PSD plugin is already aware of relevant blocks (see the plug-ins/file-psd/psd.h file). Someone should add text layer editing and styling functions to the PDB, so that the plug-in could make use of styling features in GIMP.

Prerequisites: none known. An interested developer can hack on that at any time.

Layer comps

GIMP doesn't yet support layer comps in PSD, because it doesn't yet have this feature itself.

Note that GIMP already has a tagging system for various resources (brushes, gradient etc.). It could be potentially extended to layers and thus provide a superset of what Photoshop allows, thus opening a way for layer comps support in PSD. We haven't discussed this feature request yet. If you are interested to implement this, please talk to us first.

Prerequisites: none known. An interested developer can hack on that at any time.

Blending modes

Currently, GIMP supports all blending modes available in PSD as per Adobe's documentation, but doesn't yet take into consideration that "only the Normal, Dissolve, Darken, Multiply, Lighten, Linear Dodge (Add), Difference, Hue, Saturation, Color, Luminosity, Lighter Color, and Darker Color blending modes are available for 32‑bit images". Thus GIMP should detect unsupported blending modes in its project and suggest to either lower bit depth on exporting or give the user a chance to change the project composition.

Prerequisites: none known. An interested developer can hack on that at any time.

Blending options

GIMP doesn't yet support some advanced layer blending options available in Photoshop, hence it does not support this feature in PSD files. The options are:

  • excluding particular channels from blending
  • conditional per-channel blending

Hence GIMP should gain these features first, then the PSD plug-in can be patched accordingly.

This hasn't been discussed by the team much yet, but it should be noted that channel selection for conditional blending in Photoshop is restricted to Grey and the channels of the current color model/space (e.g. R, G, and B for an RGB image). This seems overly restrictive, implementing support for blending based on CIE CLH and other color spaces would be beneficial for users (as demonstrated by e.g. darktable). Thus the implementation would be a superset of what Photoshop's allows.

Prerequisites: we haven't discussed yet if this is 2.10, 3.0, or 3.2 material. Please talk to us first.