5

Plead/Preparing for standard SO backlash

This is a generic question I apologize as I'm not an SO "noob" and I realize this doesn't fit the format exactly, if you can suggest a better place for this query I'm all ears. If you choose to down vote or close please suggest an alternative.

Question

Is anyone aware of projects that already generate a PSD file from within AS3?

Background (everything below here you may not care about if you just want to answer a question, but if interested I could use a hand)

I've found an AS3 PSD parser here.

For some basic tests this has worked fine (after some tweaking to avoid errors). However, now the task is to reverse this process to write a PSD file.

Current plan (and overall goal)

I also found a file format specification document.

My plan at this point is to just start from the top and work my way through the document building each of the parts of the file (and helper value objects) as I go along. Since this will be a very time consuming process, I'm wondering if there's any other previous work I could build off of.

Ultimately my goal is to integrate this code into a mobile drawing project I've been working on for some time. Since it's a mobile project I have to deal with the possibility that the OS kills my app to reclaim memory, in that case I need to be able to save/load the existing state of the app (currently has layers of BitmapData similar to photoshop, plus would be cool to be able to open PSD files and open my files from the device in photoshop with layers preserved).

Links to live version and code

The app can be downloaded here (is free will remain free, no ads, app is funded by love and the desire to create something cool everyone can have/use):

Google Play

Amazon App Store

Still working on an iOS release (process is more involved than the other two stores)

The code can be found here on github (Flash Builder project files in the FlashBuilderProject/FingerPainting folder).

Legal

Essentially the code contained in that repository is all MIT or Apache Licensed (will be going back to double each of the authors sites to get the original licenses to copy in now, just in case). I'm not a lawyer, but I believe I legitimately obtained everything in the project currently and am simply obligated to include the licenses and make my extensions of the source code available in some cases. (fonts came from google web fonts and downloaded Roboto from Google directly http://developer.android.com/design/style/typography.html). Any code in the com.shaunhusain package I wrote and you can assume is GPL for now. If anyone more legally savvy wants to tell me I'm breaking the law, and how, I would appreciate it.

The portions included and used from other sites include

  1. Actuate MIT License
  2. PNGEncoder2 License included in source from Adobe permits usage.
  3. ShareANE I don't have a license for this one (he didn't include one) the author is chinese, as such I'm having some difficulty figuring out how to contact him, but am assuming I'm safe to use his code.

A couple of pieces of code are in the repository but currently not used including a GIF parser/encoder from bytearray.org and a ColorMatrix class from Grant Skinner.

Update After trying this for a while I ended up deciding to just use the ORA format since it is open and far far simpler and works fine with GIMP and Krita (open source editors).

shaunhusain
  • 19,630
  • 4
  • 38
  • 51

1 Answers1

0

I'm not sure about the intended use, but if you are compiling the file in Flash, you might be able to use JSFL to export the fla to a PSD. Then tie the JSFL functionality to a button in a SWF that you load as a panel in the IDE. JSFL is pretty powerful, however it only works within the IDE/locally.

Eric Norcross
  • 4,177
  • 4
  • 28
  • 53
  • Appreciate the suggestion but this is going to be used on a mobile application. As far as I understand JSFL (very little) it is only used for scripts that can interact with different Adobe products on the desktop? I actually got through my PSD writer to the point that I have to split the RGBA of each pixel into it's channels to write the layer data. I'm a bit worried about the overhead for this and about having it work, so I'm going to use OpenRaster first since it's a simpler solution then move back to the PSD. Thanks though. – shaunhusain Apr 08 '13 at 13:38