Take the 2-minute tour ×
Graphic Design Stack Exchange is a question and answer site for professional graphic designers and non-designers trying to do their own graphic design. It's 100% free, no registration required.

I have to daily work with PSDs of iPhone Apps. These PSDs contains App designs like buttons, texts, background images, etc.

I have to extract images of each elements from these PSDs and convert it to PNG images.

I would like to know if there is any efficient way to extract images from PSD files.

share|improve this question
1  
If you expand the question a bit, with more information about how these files are put together, you'll have more chance of getting the exact answer you need. –  Alan Gilbertson Jan 21 '12 at 5:03
1  
Old question, but, macrabbit.com/slicy is awesome if you're on a mac. Totally worth $30 to me. –  Dcritelli Oct 3 '12 at 14:09
add comment

4 Answers

up vote 4 down vote accepted

It depends greatly on how the .psd is constructed and what you need out of it.

For example, if you've got a master layer which always remains visible. They other layers which need to be visible for some buttons, but not for others, you may find using Layer Comps to be a good solution. You can simply toggle visibility for layers, then create a new layer comp. Do this for each element. Then you can export Layer Comps as files.

If you've got a .psd with each layer being a single item you need, as mentioned the script to export layers as files may help. Or you could set up an action -- Duplicate Layer (new file), Trim, Save for Web. Then assign an F key to the action. You could then simply highlight a layer and hit the appropriate F key.

Additional information concerning an action....

  1. Option/Alt click the visibility icon next to the bottommost layer in the layers panel. It should make only that layer visible.

  2. Create new Action, assign it an F key in the new Action dialog window and start recording. action creation

  3. Save for Web (whatever settings you need).

  4. After the Save for Web hit Option/Alt ] (close bracket) on the keyboard. (this should highlight, and make visible, the next layer up)

  5. Stop recording.

  6. Click the dialog option next to the "export" step of the action. dialog option

Now, all you need do is hit the F1 key (or whatever key you assigned), hit the Enter Key, and type an image title. Then repeat - F1, Enter Type title, F1, Enter, type title, and so on until all layers are saved.

It's not perfect. But without scripting it's the best you can do. Perhaps someone can help with a script. Application scripts aren't my strong suit.

share|improve this answer
add comment

In this situation, you can create an action to do the generic controls such as move up/down one layer, select all, copy, save as. Should save you quite a bit of time.

share|improve this answer
add comment

There is an automate command in Photoshop, not sure what version it started, I use it in CS5. File - Scripts - Layers to files & that is in Mac, once again not sure if Windows provides it . Hopefully your using what I'm using otherwise holla back and I'll see if I can get you something for Windows...

share|improve this answer
add comment

I had the very same problem. First, I used Photoshop itself. I carefully clicked every layer and used menu item from Layers menu to create a Slice basing on selected layer. Then I used Save to Web feature from File menu. Generated XHTML and CSS code was awful (I'm more webdeveloper than graphician), but I had most layers extracted as separate PNG files.

Even though, the result was not satysfing for me, so I searched the net and found psdparse tool. I used it (command-line with some input parameters) and the effect was far better than what Photoshop can offer.

They have an on-line version of this tool, but I haven't tested it as command-line was enough for me.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.