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

Parse XMP metadata as String #47

Open willstott101 opened 1 year ago

willstott101 commented 1 year ago

I was looking into #41 and my simple timeline animation psd didn't include 0x0433

Just to kinda dip my toe in the water with the image resources I thought I'd implement a dead simple one.

The test updates are kinda lazy and I don't actually have a use case for the XMP data, so if there's not much interest in merging this that's fine. FYI the parsing of PSD files will fail if the XMP data isn't valid utf8 after this change.

EDIT: Parsing the XML is left as an exercise for the user, as ergonomic XML apis are a very personal decision IMO. And I don't think it'd be logical to add a strongly-typed XMP lib as a dependency, if a pure-rust one even exists.

willstott101 commented 1 year ago

On this front - would it be sensible to have a lazy image resource parsing api? Since there are many, and if the number implemented were to grow it might quite significantly increase parse time and memory usage for users not interested in those features.

Similarly for users ONLY interested in some of the resource blocks, like XMP metadata or thumbnails.