Skip to content

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

@mexicantexan
Copy link

@ajjahn @chinedufn basic round-tripping (read -> save -> read) seems to be functioning

@mexicantexan
Copy link

@chinedufn what would you need from me to merge this PR?

@ajjahn
Copy link
Author

ajjahn commented Aug 21, 2025

I think we can at least mark this PR as ready for review.

@ajjahn ajjahn marked this pull request as ready for review August 21, 2025 13:12
@mexicantexan
Copy link

@chinedufn Just following up on this

@chinedufn
Copy link
Owner

chinedufn commented Aug 29, 2025

Planning to review next week.

Main thing I'll be looking for:

  • all of the functionality is tested
    • every test should include a doc comment that explains what is is verifying.
      • /// Verify that ...
  • the new types/functions/methods/ are well documented

I'm noting this in case you want to look it over first. We will not merge any untested functionality.

Otherwise, I'm planning to review this next week.

Thank you for your efforts here.

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