chinedufn / psd

A Rust API for parsing and working with PSD files.
https://chinedufn.github.io/psd
Apache License 2.0
265 stars 40 forks source link

No Timeline information #41

Open henriquecolini opened 1 year ago

henriquecolini commented 1 year ago

The current version of this crate does not support Timeline data, which would make it a valuable tool for animation. It would allow for batch exporting of animation frames, saving time and effort for games with a lot of frame-by-frame animations. The PSD file specifications indicate that Timeline information is stored at resource ID 0x0433, but it does not provide instructions on how to interpret this data. It probably wouldn't be too hard to do so.

chinedufn commented 1 year ago

Hey!

I'd be happy to review a PR that implements this. I'd also be more than happy to answer any questions.

willstott101 commented 1 year ago

I'm interested in looking into this. If anyone has some test psd files using a range of timeline features I'd appreciate a couple.

Resources

Reverse Engineered Specification (Heavily WIP)

So far I have found two Image Resource blocks given IDs in the 4000-4999 range, They both have 4byte tags on the front, so I am not sure if their rid is consistent, or if that's more of an index in the document.

mani tagged "plug-in" image resource block (id 4000)

This it quite an ad-hoc investigation

mfri tagged "plug-in" image resource block (id 4001)

AdditionalLayerInfo block shmd

According to the forum post this is relevant to animation, Looks like similar formats to the stuff in mani. There are three sub-sections

There appear to be three sub sections within