如何在 HTML Photoshop API 颜色代码中使用 5 位 RGB 值

How to use 5 digit RGB value in HTML Photoshop API color code

我正在使用 adobe photoshop API 来获取图层信息并想在 html canvas 上操作图层。一切正常,但颜色代码。

我正在获取 4-5 位 RBG 值的颜色代码,这在 HTML canvas.

中不起作用

下面是Adobe API输出数据的一部分-

"characterStyles": [
          {
            "to": 0,
            "from": 0,
            "fontName": "RupeeForadian",
            "fontSize": 45.92,
            "fontColor": {
              "rgb": {
                "red": 32768,
                "blue": 32768,
                "green": 32768
              }
            },
            "orientation": "horizontal",
            "fontAvailable": false
          },
          {
            "to": 7,
            "from": 1,
            "fontName": "FiraSans-Bold",
            "fontSize": 45.92,
            "fontColor": {
              "rgb": {
                "red": 32768,
                "blue": 32768,
                "green": 32768
              }
            },
            "orientation": "horizontal",
            "fontAvailable": false
          }
        ],

还有其他方法可以在 HTML/CSS 中使用这 5 位 RBG 值吗?

谢谢!

查看值 32768,它很可能返回带符号的 16 位值作为颜色。您可以将值从 0-32768 重新映射到 0-255:

编辑:@Kaiido 在评论中提到,the range 是 0-65535。

const characterStyles = [
  {
    to: 0,
    from: 0,
    fontName: "RupeeForadian",
    fontSize: 45.92,
    fontColor: {
      rgb: {
        red: 32768,
        blue: 32768,
        green: 32768,
      },
    },
    orientation: "horizontal",
    fontAvailable: false,
  },
  {
    to: 7,
    from: 1,
    fontName: "FiraSans-Bold",
    fontSize: 45.92,
    fontColor: {
      rgb: {
        red: 65535,
        blue: 13423,
        green: 32768,
      },
    },
    orientation: "horizontal",
    fontAvailable: false,
  },
];

function rgb16ToRgb8(r, g, b) {
  return {
    r: Math.round((r / 65535) * 255),
    g: Math.round((g / 65535) * 255),
    b: Math.round((b / 65535) * 255),
  };
}

for (const style of characterStyles) {
  const { red, green, blue } = style.fontColor.rgb;
  const outputColor = rgb16ToRgb8(red, green, blue);
  const cssColor = `rgb(${outputColor.r}, ${outputColor.g}, ${outputColor.b})`
  
  console.log("In: ", style.fontColor.rgb);     
  console.log("Out: ", cssColor );
}