Pregunta

Me pregunto si esto es posible. Tengo una aplicación que agrega un menú contextual cuando haces clic derecho en un archivo. Todo funciona bien, pero esto es lo que me gustaría hacer:

Si el archivo es un PSD, quiero que el programa extraiga la imagen. ¿Es posible hacerlo sin tener instalado Photoshop?

Básicamente, quiero que el usuario haga clic derecho y haga clic en " imagen " que guardaría un archivo .jpg del archivo para ellos.

editar: utilizará c # Gracias

¿Fue útil?

Solución

Bueno, hay un plugin PSD para Paint.NET que creo que es Open-Source que tal vez quieras echar un vistazo para empezar:

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

Otros consejos

Las ImageMagick bibliotecas (que proporcionan los enlaces para C # ) también admiten el formato PSD. Podrían ser más fáciles de comenzar que ingresar al código Paint.NET y también vienen con una licencia bastante gratuita (similar a BSD).

Un ejemplo simple (que se encuentra en http://midimick.com/magicknet/magickDoc.html) usando MagickNet se vería así:

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();
}

Nota: MagickNet se ha movido a http://www.codeproject.com/KB/ dotnet / ImageMagick_in_VBNET.aspx

Este chico lo hace más fácil:

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

Con una biblioteca C # y un proyecto de muestra.

Lo he intentado con archivos PS2 y funciona bien.

He escrito un analizador PSD que extrae capas de formato ráster de todas las versiones de PSD y PSB. http://www.telegraphics.com.au/svn/psdparse/trunk

Aquí está mi propio analizador y exportador de psd: http://papirosnik.info/psdsplit/ .  Permite analizar correctamente psd con rgb color 8, 16 y 32 bits para el canal, procesar máscaras de usuario, exportar las capas seleccionadas a jpeg, png, jng, bmp, tiff; cree un diseño xml de capas y grupos exportados y también cree un atlas de texturas y conjuntos de animaciones a partir de capas determinadas. Está completamente escrito en C #. Si desea que sus fuentes me informen a través del enlace de soporte en el cuadro de diálogo Acerca de en la aplicación.

FastStone hace esto de manera bastante eficiente. No tienen sus bibliotecas disponibles, pero supongo que puede ponerse en contacto con ellas y ver si pueden ayudar.

Visite su sitio web: http://www.faststone.org/download.htm

ImageMagick.NET - http://imagemagick.codeplex.com/ - es la versión más reciente de El enlace 0xA3 dio, con alguna sintaxis ligeramente diferente. (Nota, esto no está probado):

using ImageMagickNET;

public void Test() {
        MagickNet.InitializeMagick();
        ImageMagickNET.Image img = new ImageMagickNET.Image("file.psd");
        img.Resize(new Geometry(100, 100, 0, 0, false, false);
        img.Write("newFile.png");
}

Tengo la extracción de psd trabajando. mira mi respuesta aqui

Cómo extraer capas de un archivo de Photoshop? C #

puede ayudar a alguien más.

Puede utilizar la API GroupDocs.Viewer for .NET para representar sus archivos PSD como imágenes (JPG, PNG, BMP) en su aplicación usando algunas líneas de código.

C#

ViewerConfig config = new ViewerConfig();
config.StoragePath = "D:\\storage\\";

// Create handler
ViewerImageHandler imageHandler = new ViewerImageHandler(config);

// Guid implies that unique document name 
string guid = "sample.psd";

// Get document pages as images
List<PageImage> pages = imageHandler.GetPages(guid);

foreach (PageImage page in pages)
{
    // Access each image using page.Stream
}

Para obtener más detalles y código de muestra, visite aquí . Divulgación: trabajo como desarrollador evangelista en GroupDocs.

He tenido mucho éxito con el componente Imaging de Aspose que puede cargar y guardar archivos PSD sin Photoshop: https : //products.aspose.com/imaging/net

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top