2010-12-04 157 views
8

我想从PSD文件中检索所有图层并获取它们的名称,X和Y位置。如何从PSD文件获取图层?

有没有可以做到这一点的C#库?

我从CodeProject的tried this lib,但我总是得到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; 

我需要包括这些引用:

+0

你可以请更新链接PaintDotNet.Core.dll?谢谢! – greenfeet 2015-07-20 08:28:40

+1

@greenfeet如果你安装Paint.NET,你可以从安装目录中获得DLLs – BrunoLM 2015-07-20 21:47:15

回答

0

我没有安装了Photoshop,所以我不知道这是否可以工作,但也许无论是GIMP或Photoshop(或相关软件)出口COM组件,您可以使用,就像Office套件确实....

希望这可以帮助。

1

0xA3执行给出this线程的答案。我没有亲自使用这个库,但它看起来很简单并且运行良好。

\直接复制\

ImageMagick的库(其提供C#绑定)也支持PSD格式。他们可能比进入Paint.NET代码更容易入门,并且还带有一个非常免费的(BSD-like)许可证。

一个简单的示例使用MagickNet看起来像这样(在http://midimick.com/magicknet/magickDoc.html找到):

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