adobe-photoshop / generator-core

Core Node.js library for Adobe Photoshop CC's Generator extensibility layer
MIT License
688 stars 97 forks source link

Vector Smart Objects showing only as a bitmap #276

Open marekhrabe opened 9 years ago

marekhrabe commented 9 years ago

I have a PSD with Smart Object (originally .ai file). When calling getDocumentInfo with expandSmartObjects flag on, it only shows the placed document as one bitmap layer although it is some kind of vector document.

dumbobject

Is there any way to get data about that document or Photoshop internally doesn't know that and only calls some Illustrator renderer that deals with that? I found illustratorPathsExport in Photoshop binary which I don't know what really does, but it seems promising :)

Can you tell me if this can theoretically be supported and if it even makes sense for you to support it? As I can imagine it is pretty specific case, but I hate to lose vectors and getting just a bitmap instead :crying_cat_face:

chrisbank commented 9 years ago

This is something we're looking to add to generate-assts / Extract Assets in the future. In a nutshell we need to add support for senddocumentstreamtonetworkclient. That data should be in PDF format. Then convert that to SVG. I don't know the exact timeline we're looking at, but it is on the radar.

marekhrabe commented 9 years ago

Oh, nice :+1: The native side is on you, but maybe we can work out some collaboration on node side (the PDF conversion). Keep us posted and thanks :)

marekhrabe commented 8 years ago

Any news on this? I see a lot of images (icons being most frequent usecase) embedded in PSDs this way and we currently cannot get any data about them, other that flattened bitmap.

timothynoel commented 8 years ago

You could call sendDocumentStreamToNetworkClient yourself, and grab the file directly (pdf in this case, of which ai is a variant). It would then be your responsibility to deal with the file format (I wouldn't think pdf would be a problem, there's various library/os support for it)

I think that sendDocumentStreamToNetworkClient currently requires a layerID. 16.1 will allow you to use a placedID (unique ID), or to query into the placed document tree. Generator docInfo is basically giving you a Photoshop document version of the smart object, which a flat, rasterized single layer of the pdf data. That's what Photoshop uses internally to get the source bits to composite for the smartObject layer.

marekhrabe commented 8 years ago

Thanks for info. I will do some experiments in 16.1 (once it is released) and share the results of my research here.