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

时间:2010-12-04 02:19:50

标签: c# .net photoshop

我想从PSD文件中检索所有图层并获取其名称,X和Y位置。

是否有可以做到的C#Lib?

我来自CodeProject tried this lib,但我总是得到TargetInvokeException。我的PSD文件来自Photoshop CS5 ......


探索Paint.NET,因为Robin建议我可以使用此代码:

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

我需要包含这些引用:

3 个答案:

答案 0 :(得分:4)

您可以使用Paint.NET的PSD插件来完成它。

从那里提取解析器库应该相当容易。

http://psdplugin.codeplex.com/

答案 1 :(得分:1)

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

\ Direct Copy \

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

答案 2 :(得分:0)

我没有安装Photoshop,所以我不知道这是否可行,但可能是GIMP或Photoshop(或相关软件)导出可以使用的COM程序集,就像Office套件一样....

希望这有帮助。