一个软件的颜色数据转换,已然蒙圈 求助!

2020-05-15 10:51:14 +08:00
 gyinbj

标记 颜色值

待上架新品 8454143

滞销品 12615808

A 类货品 255

优品 65408

无法补货待下架 12632256

有质保期 16711808

颜色值转换成 16 进制 变成了 #颜色值 但是和软件内部显示的颜色不一致,搞了一个来小时了 ,目前不知道他是怎么转换的 , 求助。

下图是软件内部颜色,

下图是我解析的颜色。。。

1977 次点击
所在节点    程序员
10 条回复
rvkea
2020-05-15 11:05:46 +08:00
倒序一下,不足的补零即可。eg. 待上架新品:源数据 8454143 -> #80FFFF -> #FFFF80
gyinbj
2020-05-15 11:12:25 +08:00
@rvkea 第二个 8080c0 是怎样倒叙??
rvkea
2020-05-15 11:14:39 +08:00
@gyinbj #C08080
rvkea
2020-05-15 11:16:20 +08:00
@gyinbj 噢,你不是已经倒序了吗...
viazure
2020-05-15 14:31:17 +08:00
看这界面和这颜色值像是 delphi,可以搜一下 delphi 颜色转换,看下算法
zapper
2020-05-15 14:52:08 +08:00
你这个原始数据应该是 GBR 的排列…调换成 RGB 应该就可以了
AlisaDestiny
2020-05-15 14:52:19 +08:00
其实可以换个思路,你直接用颜色提取工具把软件上那几个示例颜色的 16 进制值提取出来就好了。
gyinbj
2020-05-15 16:02:39 +08:00
已解决, 感谢各位
imn1
2020-05-15 16:10:03 +08:00
转成 hex 后,前面补零成字符串,然后按每两位倒序,实际就是交换 01 和 45 两个位置,但 01 本身顺序不变
seakingii
2020-05-15 17:26:09 +08:00
你对接的是 delphi 的系统吧,我刚好最近也有这样类似的需求,下面是我的 Javascript 代码.

converToRgb(value) {
let rgb = [];
rgb[0] = (value& 0xff0000) >> 16;
rgb[1] = (value& 0xff00) >> 8;
rgb[2] = value& 0xff;
return "rgb(" + rgb[2] + "," + rgb[1] + "," + rgb[0] + ")";
},

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/671926

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX