Как я могу получить слои из 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 сделать это.
должно быть довольно легко извлечь обратно оттуда.
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....
надеюсь, что это помогает.