Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement PSD write support #63

Draft
wants to merge 16 commits into
base: master
Choose a base branch
from
Draft

Conversation

ajjahn
Copy link

@ajjahn ajjahn commented Aug 30, 2024

A work in progress, looking for feedback. Among other things, the layer and mask information is still incomplete.

It has become apparent that in order for writing PSDs to be useful, an API for modifying Psd needs to be designed and implemented.

@ajjahn ajjahn mentioned this pull request Aug 30, 2024
@ajjahn
Copy link
Author

ajjahn commented Aug 30, 2024

want to collab on this?

That would be ideal. I think we need to start a conversation about the API for creating/updating a Psd object in order to write it out as a .psd file. I think that might impact how the internals are represented due to the fact that up until now this library has only read bytes in. We probably need @chinedufn to jump into that conversation too.

My particular use case is to transform a proprietary image composition document type into PSD. That will mean needing to create pixel layers, text objects, set blending modes, using adjustment layers, group and layer masks, even potentially using effects.

@mexicantexan
Copy link

Sounds good to me. My use case is much simpler, I just need to be able to load a standard image type into a layer and save it. So I believe it would get wrapped up into your spec list.

@chinedufn
Copy link
Owner

I haven't looked at this PR yet, but if it doesn't contain any tests then that would be something to think about since we don't want to land any untested functionality.


We can follow the approach laid out in #61 (comment) until we have enough implemented to support both of your needs.

I'll make myself available to answer questions and review code.

@mexicantexan
Copy link

@ajjahn could you add me as a contributor to your fork?

Jacob and others added 8 commits September 12, 2024 19:32
…ncorrect values through the use of epsilon comparisons.

Add tests for color burn and color dodge that explicitly test for this.
…vid_light', 'linear_light', 'pin_light', and 'hard_mix'.

Add luminance calculation. Add rgb_to_hsl conversion and hsl_to_rgb conversion. Add hue, saturation, color, and luminosity blending ability.
@mexicantexan
Copy link

mexicantexan commented Sep 13, 2024

@ajjahn I took some time last night to read through your progress so far and implemented some missing features (specifically around blending) that I think are going to be necessary for us.

Great work so far! I guess I'll ask where would you like me to push my efforts first? Which parts do you see as your largest painpoints/unknowns?

…dd a simple test to check functionality and backwards compatibility.
@mexicantexan
Copy link

@ajjahn Just following up on my previous

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants