如何从 Photoshop 文件中提取图层? C#
C# 中是否有一个库可以让我读取 Photoshop 文件 (PSD) 中的图层并将它们提取为透明图像 (PNG)?
Photoshop 有一个批处理命令,可以提取单个文件中的所有图层,但无法选择透明 PNG。 我的目标是创建一个小型实用程序,它将根据您的喜好创建图层组合(例如,考虑创建一副卡片组)。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
CodeProject 上有一篇不错的文章,可能会有所帮助。 这里有一个关于 SO 的 线程,讨论使用 C# 解析 PSD 文件格式。
There's a nice article on CodeProject which might be helpful. And here's a thread on SO discussing PSD file format parsing with C#.
我在任何地方都找不到太多关于这方面的信息,但这就是我最终做到的。
我必须下载 Frank Blumenberg 先生所做的 cs 文件(基于 Jonas Beckeman 的 Endogine 引擎),因为获取 Paintdotnet dll 本身还不够。
我相信我就是在这里得到cs文件的。
http://code. google.com/p/skimpt/source/browse/trunk/Skimpt3/Skimpt3/classes/photoshop/?r=72
这应该可以让你获得图层..
:-)
这似乎与 CS6 配合得很好文件也是如此。
更新:vs2013网站在这里:http://goo.gl/H6nWSN。
I couldnt find much on this anywhere, but this is how i ended up doing it.
i had to downloaded the cs files that Mr Frank Blumenberg did (based on the Endogine engine by Jonas Beckeman), as getting the paintdotnet dll itself wasnt enough.
I believe it was here that i got the cs files.
http://code.google.com/p/skimpt/source/browse/trunk/Skimpt3/Skimpt3/classes/photoshop/?r=72
This should allow you to get the layers..
:-)
This seems to work fine with CS6 files too.
update: a vs2013 website is here: http://goo.gl/H6nWSN.
您可以使用 Photoshop COM 来做到这一点。
You can do that with Photoshop COM.
ImagicMagick(在另一篇 SO 文章中提到过)确实允许单独提取图层。 请参阅:http://www.rubblewebs.co.uk/imagemagick/psd.php
您可以使用命令行工具亲自尝试一下:
ImagicMagick (which was mentioned in the other SO article) does allow layers to be extracted separately. See: http://www.rubblewebs.co.uk/imagemagick/psd.php
You can try this for yourself using the command line tool:
我找到了一个 代码示例,它在 Java 中执行此操作。
还仅支持较旧的 PSD 版本:
ImageMagick 还可以处理 PSD 并具有多种语言的接口:
I found a code sample that does this in Java.
Also supports only older PSD versions :
Also ImageMagick handles PSD and has interfaces to many languages :
如果您没有安装 Photoshop,那么您可能需要查看 http://frankblumenberg.de/doku/doku.php?id=paintnet:psdplugin 了解更多加载 PSD 文件的示例代码。
不幸的是,我不知道现有的 PNG 库可以满足您的需求,但用于 PNG 文件操作的规范库代码位于 http://www.libpng.org/pub/png/。
If you don't have Photoshop installed, then you may want to look at the code at http://frankblumenberg.de/doku/doku.php?id=paintnet:psdplugin for more sample code that loads PSD files.
Unfortunately, I don't know of a pre-existing PNG library that does what you want but the canonical library code for PNG file manipulation is located at http://www.libpng.org/pub/png/.