Hope to enhance the support for PSD text layer.

I am a Chinese user, I do not understand English, the following content is I use Baidu translation tool to translate into English, some sentences may appear grammatical errors.
When I use krita to open a PSD file, the text layer will become an ordinary image layer, which means that I can’t edit the text. In addition, after krita has edited the text and saved it in PSD format, the text will still become an ordinary image layer. I hope this problem can be solved.

It can be solved, if Adobe releases the specification of the .psd format so Krita at least have a chance to support it. Adobe has much better chances to support text layer in .kra file than Krita has to support .psd (because .kra is an open format (it’s known how to build it and how to read it), and because they have much higher budget).

You might have a chance if Adobe has an option to export a layer in SVG file format. Then you can import that SVG to Krita as a layer and it should be editable as usual.

You mean there’s no solution unless Adobe publishes the PSD file format specification, right?

Yes, Adobe needs to publish the .psd format specification so the krita developers can learn how to extract the text as editable text.

At the moment, the workaround is to export from PS as an .ai file for use in Adobe Illustrator. Then use Adobe Illustrator to open the file and Export it as .svg.
That is supposed to work for vector objects but I haven’t seen that method suggested for use with PS text.

I think that Inkscape can open .ai files. If you have access to PS and Inkscape you could try that to see if it’s possible.

That is only if the ai is saved with pdf compatibility (which by the way works by having two files inside the ai one .ai data and other pdf file) If this pdf compatibility option is not enabled the file will show nothing except a tiled error message stating that file is incompatible

Such is the state of world leader in graphics applications.

1 Like

Excuse me, does it need to be more than that?
Adobe Photoshop File Formats Specification

Yes. The text format is specified as

Text Engine Data (Photoshop CS3)

Key is ‘Txt2’ . Data is as follows:

Text Engine Data |Length|Description|
|4|Length of data to follow|
|Variable|Raw bytes for text engine|

That is not sufficient for a reimplementation.

1 Like

Some people tries to understand PSD file format…
Example of code here (but no decoding of Text Engine format)

The most interesting thing in this code is this comment in code:

At this point, I’d like to take a moment to speak to you about the Adobe PSD format.
PSD is not a good format. PSD is not even a bad format. Calling it such would be an
insult to other bad formats, such as PCX or JPEG. No, PSD is an abysmal format. Having
worked on this code for several weeks now, my hate for PSD has grown to a raging fire
that burns with the fierce passion of a million suns.
If there are two different ways of doing something, PSD will do both, in different
places. It will then make up three more ways no sane human would think of, and do those
too. PSD makes inconsistency an art form. Why, for instance, did it suddenly decide
that these particular chunks should be aligned to four bytes, and that this alignement
should not be included in the size? Other chunks in other places are either unaligned,
or aligned with the alignment included in the size. Here, though, it is not included.
Either one of these three behaviours would be fine. A sane format would pick one. PSD,
of course, uses all three, and more.
Trying to get data out of a PSD file is like trying to find something in the attic of
your eccentric old uncle who died in a freak freshwater shark attack on his 58th
birthday. That last detail may not be important for the purposes of the simile, but
at this point I am spending a lot of time imagining amusing fates for the people
responsible for this Rube Goldberg of a file format.
Earlier, I tried to get a hold of the latest specs for the PSD file format. To do this,
I had to apply to them for permission to apply to them to have them consider sending
me this sacred tome. This would have involved faxing them a copy of some document or
other, probably signed in blood. I can only imagine that they make this process so
difficult because they are intensely ashamed of having created this abomination. I
was naturally not gullible enough to go through with this procedure, but if I had done
so, I would have printed out every single page of the spec, and set them all on fire.
Were it within my power, I would gather every single copy of those specs, and launch
them on a spaceship directly into the sun.

PSD is not my favourite file format.


1 Like

I remember this comment :laughing:. A colleague showed it to me after I wrote a similar comment but about a horrible proprietary PDF library in PHP ten years ago or so. I can still feel my anger and feel this comment too.

1 Like

Found this repo, where it seems the text engine data is explained, with examples.

Written in Ruby, but there’s explanations with examples, and Ruby code seems as simple as python to understand… (but didn’t dig more than just an eye on code)

If it can help for one day, allows Krita to read text part in psd file (at least, keep link to repo in bookmarks :wink: )


1 Like

Thanks for that link! That looks really useful. It probably would be almost a Google Summer of Code sized project to convert that to C++ and integrate in the PSD import/export code, but with this information, it can be done.

1 Like

This topic was automatically closed 15 days after the last reply. New replies are no longer allowed.