解析photoshop psd以获得图层的字体大小

Parsing photoshop psd to get font size of layers

我目前正在解析 PSD 文件。我正在为栅格化图层使用 imagick,但我需要获取字体图层的字体数据,因为 imagick 无法执行此操作,我需要自己完成。现在我可以抓取文本、字体系列、字体颜色但不能抓取字体大小。

PSD 中有一些“/FontSize xx.xxx”,但通常没有一个是正确的。 (“有时我指的是不同的 PSD”):

• 有时,从此处抓取的所有字体大小都按相同的比例因子偏移。
• 有时不同的层因相同的比例因子而不同。
• 有时所有尺寸都是正确的。

A​​dobe 提供了 specifications 的 PSD 文件格式,但这些已经过时且不完整,甚至没有提到字体大小。

我试过使用同一文件的副本只更改字体大小但无济于事。

有没有人已经这样做过或者有什么想法可以指引我正确的方向?

我在类似的情况下使用了psd.rbrubygem

layervault/psd.rb: Parse Photoshop files in Ruby with ease

require 'psd'
require 'json'

psd = PSD.new("/path/to/psd.psd")
psd.parse!

puts JSON.pretty_generate psd.tree.to_hash
# do something

答案可以找到here(请注意,提供的代码有一个小错误。)

答案是应该将字体大小乘以变换的 yy 分量。

据我了解,这是由于旧的 Photoshop 错误造成的。