如何从一个PSD文件中获取图层?

8
我希望能够从PSD文件中检索所有图层,并获取它们的名称、X和Y位置。是否有一个可以做到这一点的C#库?我已经尝试了来自CodeProject的这个库,但我总是得到TargetInvokeException异常。我的PSD文件来自Photoshop CS5...

根据Robin的建议,我开始探索Paint.NET代码:

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

我需要包含这些参考文献:


请问您能否更新PaintDotNet.Core.dll的链接?谢谢! - greenfeet
1
@ greenfeet 如果你安装了Paint.NET,你可以从安装目录中获取DLL文件。 - BrunoLM
3个回答

4

2
“0xA3在this线程中给出了答案。我个人没有使用过这个库,但它似乎很简单并且工作良好。
直接复制
ImageMagick库(提供C#绑定)也支持PSD格式。它们可能比进入Paint.NET代码更容易入手,并且还具有相当自由的(类似BSD的)许可证。
使用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

0

我没有安装Photoshop,所以不知道这是否可行,但也许GIMP或Photoshop(或相关软件)可以导出COM组件供您使用,就像Office套件一样...

希望这可以帮到您。


我在Adobe中找不到任何COM... 我错过了什么吗? 我使用的是Windows 7 x64... - BrunoLM

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接