【问题标题】:PSD.js Font Colour Codes Make No SensePSD.js 字体颜色代码没有意义
【发布时间】:2018-02-23 16:59:57
【问题描述】:

我知道这个问题已经被问过here,但没有任何有意义的答案,开发者是一场噩梦。

使用 PSD.js 文本字符的颜色与 RGB、RGBA 或 CMYK 不匹配,颜色数组中有 5 个数字,如果您尝试比较,它们甚至与 Photoshop 文件中的文本颜色不匹配RBG 或 CMYK 值的任何数字。

PSD.js 显示文本特定部分颜色的示例显示了此数组:

[3] => Array
(
    [0] => 27
    [1] => 185
    [2] => 116
    [3] => 0
    [4] => 255
)

您可以清楚地看到这些与我以前见过的任何颜色代码都无关。这些数字应该代表这种颜色:#db6971 - 但没有一个数字匹配任何东西,RGB 是 219,105,113,CMYK 是 11%,72%,46%,0%

那么有人知道这里发生了什么吗?我正在尝试将此文本呈现为 html,但我无法在不知道这些数字的含义的情况下设置颜色。

【问题讨论】:

  • 如果您将 CMYK 百分比乘以 255(一个字节的最大值),您将非常接近您在数组中看到的值(28、184、117、0)。最后一个值可能是 alpha(透明度)分量,255 表示完全不透明。所以,我会说这是 CMYK+A。
  • 也谢谢你也看看你的方法
  • Ehh.. 是的,但你需要反过来做。这是很简单的数学。如果您需要以百分比表示的 CMYK 值,这只是您需要求解的方程。 IE。对于以百分比表示的 C 值,它是 255 * C / 100 = 27,即 C = 27 * 100 / 255 = 10.58 (~= 11 %)。 M = 185 * 100 / 255 = 72.54 (~= 73 %) 等(Y ~= 45 %,K = 0%,A = 100%)。
  • 是的,我没想到在我说这些早晨大声笑之前!不要以为你知道如何将 CMYK 转换为 RGB?
  • 嗯.. 你可以在网上找到一些简单的算法,但是 CMYK 到 RGB 的转换最好使用 ICC 配置文件。

标签: javascript node.js psd


【解决方案1】:

正如 PSD.js repo 官方 GitHub 页面上的帖子所述 - https://github.com/meltingice/psd.js/issues/119#issuecomment-346899211

...要转换数组,您可以这样做。

const colorArray = [ [ 102, 0, 255, 0, 255 ], [ 102, 0, 255, 0, 255 ]]
const RGB = colorArray.map(([r,g,b]) => [r,g,b]) //[[102,0,255],[102,0,255]] 

【讨论】:

  • 谢谢你去看看,在官方页面上找不到任何东西。
  • 抱歉,我刚刚意识到我将其标记为正确答案,但实际上并非如此。您显示的代码所做的只是在每个数组中跳过一个数字。看看我给出 27,185,116,0,255 的 PSD.js 示例 - 如果你跳过一个,你会得到 27,185,0 - 这与 PSD 中的实际 RGB 不同,即 219,105,113
【解决方案2】:

如果您将 CMYK 百分比乘以 255(一个字节的最大值),您将非常接近您在数组中看到的值(28、184、117、0)。最后一个值可能是 alpha(透明度)分量,255 表示完全不透明。所以,我会说这是 CMYK+A

给定你的数组:

[3] => Array
(
    [0] => 27
    [1] => 185
    [2] => 116
    [3] => 0
    [4] => 255
)

如果您需要以百分比表示的 CMYK 值,这只是您需要求解的方程式。

即。对于以百分比表示的 C 值,它是

255 * C / 100 = 27

给你

C = 27 * 100 / 255 = 10.58 (~= 11%)
M = 185 * 100 / 255 = 72.54 (~= 73%)

等等

Y ~= 45%, K = 0%, A = 100%

这与您预期的 CMYK(11%、72%、46%、0%)非常接近。

现在,如果您想要 RGB 中的值,最好使用 ICC 配置文件(从一个特定的输入 CMYK 输入配置文件到特定的 RGB 输出,如 sRGB)完成 CMYK 到 RGB 的转换。

您也可以使用您在网上找到的simplified algorithms 之一。它会起作用,只是不要期望它看起来像 Photoshop 完成的转换。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-21
    • 2010-11-22
    • 2014-10-10
    • 2012-01-03
    • 2019-10-25
    • 1970-01-01
    相关资源
    最近更新 更多