12

我正在尝试查找 psd 文件格式的文档,以便可以读取 .psd 文件,然后将各个图层保存为文件,并进行其他修改。有谁知道 .psd 文件格式的任何文档?(仅供参考,我将用 C++ 编写)

如果有任何在 C++ 中加载 .psd 文件的代码示例,那么我将不胜感激它们被链接。

(请不要把它变成“只使用 XXX 软件”。这不是家庭作业,或与此相关的任何东西。我这样做是因为我认为这将是一个有趣的项目。我会要求关闭帖子如果发生这种情况,投票。)

4

5 回答 5

42

GitHub 上还有一些 Objective-C 代码(对于任何有 C++ 背景的人来说应该很容易理解),也是这个 gem 的来源,这似乎很好地总结了它:

在这一点上,我想花点时间与您谈谈 Adob​​e PSD 格式。PSD不是一个好的格式。PSD 甚至不是一种糟糕的格式。这样称呼它是对其他不良格式的侮辱,例如 PCX 或 JPEG。不,PSD 是一种糟糕的格式。为这段代码工作了几个星期,我对 PSD 的憎恨已经变成了熊熊烈火,燃烧着一百万个太阳的强烈激情。
如果有两种不同的方式来做某事,PSD 会在不同的地方同时做这两种方式。然后它将构成另外三种没有理智的人会想到的方式,并且也会这样做。PSD 使不一致成为一种艺术形式。例如,为什么它突然决定这些特定的块应该对齐到四个字节,并且这种对齐不应该是否包含在尺寸中?其他地方的其他块要么未对齐,要么与大小中包含的对齐方式对齐。但是,这里不包括在内。这三种行为中的任何一种都可以。一个理智的格式会选择一个。当然,PSD 使用所有这三个,甚至更多。
试图从 PSD 文件中获取数据就像试图在你古怪的老叔叔的阁楼里找到一些东西,他在 58 岁生日那天死于一场怪异的淡水鲨鱼袭击。最后一个细节对于明喻的目的可能并不重要,但在这一点上,我花了很多时间想象为这种文件格式的 Rube Goldberg 负责的人的有趣命运。
早些时候,我试图掌握 PSD 文件格式的最新规范。为此,我必须向他们申请许可,才能让他们考虑将这本神圣的著作寄给我。这将涉及向他们传真一份可能是用血迹签名的文件或其他文件的副本。我只能想象他们让这个过程变得如此困难,因为他们为创造了这个可憎的东西而感到非常羞耻。我自然不会轻易接受这个程序,但如果我这样做了,我会打印出规范的每一页,并将它们全部点燃。如果它在我的能力范围内,我会收集这些规格的每一个副本,然后将它们直接发射到宇宙飞船上进入太阳。

PSD 不是我最喜欢的文件格式。

就这样你被警告了。:)

于 2011-03-18T17:53:09.467 回答
11

不会是一个有趣的项目,.psd 格式很大。它融合了 Adob​​e 多年来在 Photoshop 中投入的所有功能。

我相信该规范可以从 Adob​​e 获得,但他们不只是将其分发给公众。您必须先联系他们并跳过一些障碍。

于 2011-03-18T17:38:48.977 回答
8

Adobe 编写的 PSD 文件格式规范在这里;

http://www.adobe.com/devnet-apps/photoshop/fileformatashtml/

最后更新:2012 年 6 月。据我所知,这是关于 PSD 文件格式的最佳可用资源,即使错误很少。

首先,我建议先将 PSD 分成块。

享受!

于 2012-08-29T02:47:41.040 回答
0

MyPSD::CPSD 类是一个 C++ 类,可以加载以 Adob​​e 的 Photoshop 本机格式保存的图像。 http://www.codeproject.com/Articles/10398/Import-Adobe-Photoshop-psd-images

于 2016-08-01T03:59:54.040 回答
0

MolecularMatters psd_sdk 似乎是一个很好的库来获取灵感:https ://github.com/MolecularMatters/psd_sdk

它允许从 .psd 文件中读取图层等等。

于 2020-04-12T13:28:47.820 回答