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

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

Есть ли C # 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;

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


person BrunoLM    schedule 04.12.2010    source источник
comment
не могли бы вы обновить ссылку на PaintDotNet.Core.dll? Благодарность!   -  person greenfeet    schedule 20.07.2015
comment
@greenfeet, если вы устанавливаете Paint.NET, вы можете получить библиотеки DLL из установочного каталога.   -  person BrunoLM    schedule 21.07.2015


Ответы (3)


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

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

http://psdplugin.codeplex.com/

person Robin Orheden    schedule 04.12.2010

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

person Sprunth    schedule 04.12.2010

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

Надеюсь это поможет.

person Machinarius    schedule 04.12.2010
comment
Я не смог найти COM от Adobe... Я что-то пропустил? У меня Windows 7 x64... - person BrunoLM; 04.12.2010