如何在 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 );
}
我正在使用 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 );
}