EmilDohne / PhotoshopAPI

A modern and performant C++20 read/write parser of Photoshop Files (*.psd and *.psb) with fully fledged Python bindings hosted on PyPi
https://photoshopapi.readthedocs.io/en/latest/
BSD 3-Clause "New" or "Revised" License
94 stars 9 forks source link

Add Support for Adjustment Layers #57

Open EmilDohne opened 6 months ago

EmilDohne commented 6 months ago

This is a rather big issue as Photoshop has a wide range of adjustment layers, all with their different implementations and different levels of completeness in the official documentation.

This change would have to be two-fold; adding support for the tagged blocks in the PhotoshopFile under AdditionalLayerInformation and then actually implementing these as an abstraction of Layer<T> in the LayeredFile<T>.

For this issue support would be greatly appreciated as its a rather large issue but at the same time each adjustment layer is its individual separate object. I will attempt to provide a reference implementation once I get started but feel free to contribute!

EmilDohne commented 1 month ago

Added support for parsing of a descriptor structure (read only for now) which is the basic building block of most adjustment layers as it supports arbitray key-value data storage similar to json.

What still needs to be done is to more rigorously test this as well as adding access patterns through e.g. a operator[] overload. Once those are done we can add support for writes and start actually implementing the adjustment layers by debugging the structures associated with them via a descriptor based tagged block