This thread is a continuation of Add ability to save clipping masks in PSD files and make it cross compatible as much as possible, which meandered quite a bit and contained a lot of digressions. In this thread, I would like to ask any participant to stay on the topic.
improving the PSD import/export functionality in Krita, so that it can detect clipping masks and import and export PSD files so that the end result whether opening in Krita or Photoshop (or potentially other programs) the inherit alpha or clipping mask is applied correctly.
Do NOT talk about improving inherit alpha system in Krita. Assume the system works the exact same way it works right now. (Only when we establish and agree that there is no way we can make it work without changing the system - which we didn’t yet - maybe then we could talk about it, but I am making another topic for inherit alpha anyway.)
Do not digress or go on tangent. Pondering over how professional Krita is if it can’t support clipping masks is a tangent, please don’t do this - we already know the reasons for bigger compatibility, if it isn’t implemented, it’s not because we don’t understand. Discussing how Krita shouldn’t need to read PSD files is also a tangent. Discussing how ORA should be the industry standard is also considered a tangent in this thread. (It all might be a very good topic for Lounge if you want, but this is a Feature Requests subforum, so please stay on topic).
Whether it’s possible to read from PSD file which layer is clipped and to what etc. From my reading of Krita’s code, it seemed like it might be actually easy; but I was told that the PSD file format is very tricky and the obvious answer might not be true. Maybe it just needs testing, though.
Algorithm how to convert from purely clipping masks structure to inherit alpha structure; and then algorithm how to convert from inherit alpha to clipping masks. There are two possibilities:
a) Everything happens automatically, which means the algorithm needs to cover all possibilities and be always correct.
b) The PSD must be in a correct special structure to be converted to inherit alpha structure; and then, when you export to PSD, the layer stack must also be in a compatible layer structure to be converted into clipping mask structure. This one might be easier, but more tedious for the user, so it’s better to first try to figure out (a).
With 1., it probably needs a developer’s input. The 2. topic might be something that artist can hep with, especially if they are already familiar with visual programming. But even if not, it should be doable.
It could be written in English; like a list of steps to go through. For example: step X, check if the layer has an older (higher) sibling (layer on the same level, in the same group); if yes, go to step Y, if not, go to step Z. Or, step A, do this, step B, do something more. Or it could look like this graph: Krita onion skin issues chart by TiaRevlyn on DeviantArt (something I’ve made to quickly answer users on reddit, this was a very common issues back in a day; maybe now there are more tutorials).