我正在尝试查找psd文件格式的文档,以便我可以读取.psd,然后将各个图层保存为文件,并进行其他修改。有没有人知道.psd文件格式的任何文件? (仅供参考,我将用C ++编写)
如果有任何代码示例在C ++中加载.psd文件,那么我希望它们被链接。
(请不要把它变成“只使用XXX软件”。这不是家庭作业,也不是与此相关的任何事情。我这样做是因为我认为这将是一个有趣的项目。我会要求发帖如果发生这种情况,就要投票。)
答案 0 :(得分:40)
在Google Code上还有一些Objective-C代码(对于有C ++背景的人来说应该很容易理解),也是这个gem的来源,这似乎总结得很好:
此时,我想花点时间与您讨论Adobe PSD格式。 PSD不是一个好的格式。 PSD甚至不是一个糟糕的格式。这样称呼就是一个 侮辱其他不良格式,如PCX或JPEG。不,PSD是一种糟糕的格式。有 在这段代码上工作了好几个星期了,我对PSD的仇恨已经变得火热起来 燃烧着一百万个太阳的激情 如果有两种不同的做法,那么PSD会做两种不同的做法 地方。然后它将构成人类无法理解的三种方式,并做到这些 太。 PSD使不一致成为一种艺术形式。例如,为什么它会突然决定 这些特定块应该与四个字节对齐,并且这个对齐 应该不包含在尺寸中吗?其他地方的其他块是未对齐的, 或与尺寸中包含的对齐对齐。但是,这里没有包括在内。 这三种行为中的任何一种都可以。一个理智的格式会选择一个。 PSD, 当然,使用所有这三个,甚至更多 试图从PSD文件中获取数据就像试图找到阁楼里的东西一样 你那个古怪的老叔叔,他在58岁时遭遇了一场怪异的淡水鲨鱼袭击 生日。对于明喻而言,最后的细节可能并不重要,但是 在这一点上,我花了很多时间为人们想象有趣的命运 负责这个文件格式的Rube Goldberg 早些时候,我试图掌握PSD文件格式的最新规范。去做这个, 我必须向他们申请许可才能让他们考虑发送 我这个神圣的大部头。这将涉及传真他们一些文件的副本或 其他,可能签了血。我只能想象他们这样做了 很难,因为他们对造成这种憎恶感到非常羞愧。一世 我自然不会轻易搞定这个程序,但如果我做了 所以,我会打印出规格的每一页,并将它们全部置于火上。 如果在我的力量范围内,我会收集这些规格的每一份副本并启动 他们在宇宙飞船上直接进入太阳。
PSD不是我最喜欢的文件格式。
正好让你受到警告。 :)
答案 1 :(得分:9)
这将不是一个有趣的项目,.psd格式是大。它融合了Adobe多年来在Photoshop中投入的所有功能。
我相信该规范可以来自Adobe,但它们不仅仅是向公众提供。你必须先和他们联系并先跳过一些篮球。
答案 2 :(得分:8)
Adobe编写的PSD文件格式规范就在这里;
http://www.adobe.com/devnet-apps/photoshop/fileformatashtml/
上次更新时间:2012年6月。据我所知,这是关于PSD文件格式的最佳可用来源,即使是很少的错误。
首先,我建议首先将PSD划分为块。
享受!
答案 3 :(得分:0)
MyPSD :: CPSD类是一个C ++类,可以加载以Adobe Photoshop原生格式保存的图像。 http://www.codeproject.com/Articles/10398/Import-Adobe-Photoshop-psd-images
答案 4 :(得分:0)
MolecularMatters psd_sdk似乎是一个采用启发形式的好库:https://github.com/MolecularMatters/psd_sdk
它允许读取.psd文件中的图层以及更多内容。