Как я могу получить слои из PSD-файла?

Я хочу получить все слои из PSD-файла и получить их имя, положение X и Y.

есть ли C# Lib, который может это сделать?

Я пробовал этот lib из CodeProject, но я всегда получаю TargetInvokeException. Мои PSD-файлы из Photoshop CS5...


изучение Paint.NET как предположил Робин, я мог бы добраться до этого кода:

var ps = new PsdFile();
ps.Load(file);
var name = ps.Layers[0].Name;
var xy = ps.Layers[0].Location;

Мне нужно было включить эти литература:

3 ответов


вы можете использовать PSD-плагин для Paint.NET сделать это.

должно быть довольно легко извлечь обратно оттуда.

http://psdplugin.codeplex.com/


0xA3 дает ответ в этой нить. Я лично не использовал эту библиотеку, но, похоже, она довольно проста и хорошо работает.

\Точная Копия\

библиотеки ImageMagick (которые предоставляют привязки для C#) также поддерживают формат PSD. Они могут быть легче начать, чем попасть в код Paint.NET и совершенно бесплатно (на BSD) лицензии.

простой образец (найдено на http://midimick.com/magicknet/magickDoc.html) Использование MagickNet будет выглядеть так:

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

Примечание: MagickNet переместился вhttp://www.codeproject.com/KB/dotnet/ImageMagick_in_VBNET.aspx


У меня не установлен Photoshop, поэтому я не знаю, Может ли это работать, но, возможно, GIMP или Photoshop (или связанное программное обеспечение) экспортируют com-сборки, которые вы можете использовать, как и Office Suite....

надеюсь, что это помогает.