2011-03-18 103 views
11

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

如果有任何代码示例在C++中加载.psd文件,那么我会很感激他们被链接。 (请不要把它变成“只使用XXX软件”,这不是家庭作业,或者是与此相关的任何事情,我这样做是因为我认为这将是一个有趣的项目,我会要求帖子将下降投票如果发生这种情况。)

+0

我会做的是寻找[开源](http://www.sourcecodeonline.com/list?q=psd_codec)版本的[this](http://www.ardfry.com/ PSD-编解码器/)。编辑:等等,这是[一个](http://www.codeproject.com/KB/vista/PhotoshopPreviewHandler.aspx),如[我的数字生活]上看到的(http://www.mydigitallife.info/2007/04/01 /土坯的Photoshop PSD-预览处理程序 - 免费下载/)。 – 2011-03-18 17:34:59

回答

9

这将是一个有趣的项目,该.PSD格式为。它融合了Adobe多年来在Photoshop中的所有功能。

我相信这个规范可以来自Adobe,但他们不只是把它交给公众。你必须联系他们并首先跳过一些篮球。

+0

我想你可以在这里找到最新的规范http://www.adobe.com/devnet-apps/photoshop/fileformatashtml/ – northsea 2017-06-19 14:03:24

+0

@northsea自从我与.psd格式有关以来已经很多年了,它看起来他们已经决定,通过公开规范是没有任何损失的。感谢您的链接。我的答案的第一部分仍然适用。 – 2017-06-19 14:25:23

37

还有上Google Code一些Objective-C代码(应该是用C++背景的人容易理解的),也是这种宝石,这似乎很好地概括起来来源:

在这一点上,我想花点时间与您谈谈Adobe PSD格式。 PSD不是一个好的格式。 PSD甚至不是一个糟糕的格式。调用它会对其他不好的格式产生侮辱,比如PCX或JPEG。不,PSD是一种糟糕的格式。有 现在工作了几个星期的这段代码,我对PSD的讨厌已经成长为一场炽热的火灾 ,燃烧着百万太阳的激情。
如果有两种不同的做事方式,PSD会做两种,在不同的 的地方。然后,它将构成另外三种不健全的人会想到的方式,并且也执行那些 。 PSD使不一致成为一种艺术形式。为什么,例如,没有突然决定 是这些特定块应当与四个字节,并认为这alignement 应该包括在大小?其他地方的其他区块或者未对齐, 或与包含在大小中的对齐对齐。但是,这里没有包含它。 这三种行为中的任何一种都可以。一个理智的格式将选择一个。 PSD, 当然,使用所有三个,更多。
试图从PSD文件中获取数据就像试图找到你的古怪的老叔叔的阁楼 谁在他的第58号 生日在一个怪异的淡水鲨鱼袭击中死亡的东西。最后的细节可能对于明喻的目的并不重要,但在这一点上我花了很多时间想象负责这个Rube Goldberg文件格式的人的有趣命运 。
此前,我试图抓住PSD文件格式的最新规范。要做到这一点, 我必须向他们申请许可,才能让他们考虑发送 这个神圣的书。这可能涉及到传真给他们一些文件或其他可能签署血液的文件。我只能想象他们让这个过程很难,因为他们对创造这种可憎的事物感到非常羞愧。I 自然不会轻易地通过这个程序,但如果我已经完成了 那么,我会打印出规范的每一页,并将它们全部着火。如果它在我的力量之内,我会收集这些规格的每一个副本,并将它们在太空飞船上直接发射到太阳下。

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

就这样你被警告。 :)

+1

我以前见过这个报价,我相信每一个字。 – 2011-03-18 18:04:03