2010-12-04 218 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