views:

3203

answers:

6

I wonder if this is even possible. I have an application that adds a context menu when you right click a file. It all works fine but here is what I'd like to do:

If the file is a PSD then I want the program to extract the image. Is this possible to do without having Photoshop installed?

Basically I want the user to right click and click "image" which would save a .jpg of the file for them.

edit: will be using c# Thanks

+6  A: 

Well, there's a PSD plugin for Paint.NET which I think is Open-Source which you might want to take a look at for starters:

http://frankblumenberg.de/doku/doku.php?id=paintnet:psdplugin#download

Dave Markle
+9  A: 

The ImageMagick libraries (which provide bindings for C#) also support the PSD format. They might be easier to get started with than getting into the Paint.NET code and also come with a quite free (BSD-like) license.

A simple sample (found at http://midimick.com/magicknet/magickDoc.html) using MagickNet would look like this:

using System;

static void Main(string[] args)
{
    MagickNet.Magick.Init();
    MagicNet.Image img = new MagicNet.Image("file.psd");
    img.Resize(System.Drawing.Size(100,100));
    img.Write("newFile.png");
    MagickNet.Magick.Term();
}

Note: MagickNet has moved to http://www.codeproject.com/KB/dotnet/ImageMagick_in_VBNET.aspx

0xA3
+1  A: 

FastStone does this pretty efficiently. They do not have their libraries availaible, but I guess you can contact them and see if they can help.

Check out their website: http://www.faststone.org/download.htm

Lazer
+1  A: 

This guy do it easier:

http://www.codeproject.com/KB/graphics/simplepsd.aspx

With a C# library and a sample project.

I've tried with PS2 files and works ok.

Franklin Albricias
+1  A: 

I have written a PSD parser which extracts raster format layers from all versions of PSD and PSB. http://www.telegraphics.com.au/svn/psdparse/trunk

qu1j0t3
A: 

You can use .NET imaging SDK from Aurigma to extract raster and text layers from PSD files.

sfedor