ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 6046|回复: 18

[求助] 桌面16色、32色的16进制颜色值转换

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-3-27 11:27 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
有个挂机脚本要用到“程序后台找色”,语句如下例

''判断经验对话任务回程点
''Plugin XY = Bkgnd.FindColor(a, 800, 45, 890, 60, "FFF000")
XY = Plugin.Bkgnd.FindColor(a, 800, 45, 890, 60, "FFF300")

''接经验任务
XY = Plugin.Bkgnd.FindColor(a, 500, 310, 530, 330, "00DF00")

在桌面属性中设置为16色,脚本能正常判断单点颜色"FFF300"。
如果桌面属性中设置为32色,脚本不能正常判断颜色,需要由16色转换32色,重写脚本。

求助:有什么公式,能转换16色与32色的 16进制颜色值。

循环任务脚本.zip (17.64 KB, 下载次数: 30)

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-3-27 14:59 | 显示全部楼层
16-32.JPG 16色.JPG

16色时 屏幕截图

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-3-27 15:00 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-4-6 10:31 | 显示全部楼层
本帖最后由 zopey 于 2018-4-6 12:29 编辑

1、24位、32位属于真彩色,它的种类是
     =256*256*256
2、16位增强色的种类是
     =32*64*32

3、当屏幕分别设置在两种环境下,按键抓色结果对比如下
     求规律
真彩色(32位).rar (19.11 KB, 下载次数: 27)





TA的精华主题

TA的得分主题

 楼主| 发表于 2018-4-6 11:19 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
三、彩色板
  对于24-位真彩色图像就不使用彩色表,因为位图中的RGB值就代表了每个象素的颜色。       但是16位r5g6b5位域彩色图像需要彩色表,解释如下
  图中彩色板为00F8 0000 E007 0000 1F00 0000 0000 0000,其中:
  00FB 0000为FB00h=1111100000000000(二进制),是红色分量的掩码。
  E007 0000为 07E0h=0000011111100000(二进制),是绿色分量的掩码。
  1F00 0000为001Fh=0000000000011111(二进制),是红色分量的掩码。
  0000 0000总设置为0。
  将掩码跟像素值进行“与”运算再进行移位操作就可以得到各色分量值。看看掩码,就可以明白事实上在每个像素值的两个字节16位中,按从高到低取5、6、5位分别就是r、g、b分量值。取出分量值后把r、g、b值分别乘以8、4、8就可以补齐第个分量为一个字节,再把这三个字节按rgb组合,放入存储器(同样要反序),就可以转换为24位标准BMP格式了。

  按照前述r5g6b5彩色板规范,我们对像素在24位模式中的rgb值进行推算: 02F1 为 F102h
  r=(F102 AND FB00)/ 800 × 8 h= F0h=240
  g=(F102 AND 07E0)/ 20 × 4 h=20h=32
  b=(F102 AND 001F)× 8 h= 10h=16

  rgb=F02010h,放在存储器中为1020F0h。在Photoshop中设一下颜色,rgb取240、32、16可以看到是近红色。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-4-7 11:49 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
颜色,分为真彩色、伪彩色和直接色。
1、 真彩色
是指在组成一幅彩色图像的每个像素值中,有R,G,B三个基色分量,每个基色分量直接决定显示设备的基色强度,这样产生的彩色称为真彩色。
很多场合,真彩色就是指 RGB 8:8:8,即R,G,B都用8位来表示,即24位真彩色。
也有部分场合,用RGB 5:5:5来表示,即每个彩色分量占5个位,再加1位显示属性控制位,生成的真颜色数目为2^15 = 32768 = 32K
2、 伪彩色
像素的颜色不是由每个基色分量的数值直接决定,而是把像素值当作彩色查找表CLUT的表项入口地址,去查找一个显示图像时使用的R,G,B强度值,用查找出的R,G,B强度值产生的彩色称为伪彩色。彩色查找表CLUT是一个事先做好的表,表项入口地址也称为索引号。彩色图像本身的像素数值和彩色查找表的索引号有一个变换关系,这种关系既可以是系统提供的,也可以是自定义的。使用查找得到的数值显示的彩色是真的,但不是图像本身真正的颜色,它没有完全反映原图的彩色。
3、直接色
每个像素值分成R,G,B分量,每个分量作为单独的索引值对它做变换。也就是通过相应的彩色变换表找出基色强度,用变换后得到的R,G,B强度值产生的彩色称为直接色。它的特点是对每个基色进行变换。
用这种系统产生颜色与真彩色系统相比,相同之处是都采用R,G,B分量决定基色强度,不同之处是后者的基色强度直接用R,G,B决定,而前者的基色强度由R,G,B经变换后决定。因而这两种系统产生的颜色就有差别。
试验结果表明,使用直接色在显示器上显示的彩色图像看起来真实、很自然。这种系统与伪彩色系统相比,相同之处是都采用查找表,不同之处是前者对R,G,B分量分别进行变换,后者是把整个像素当作查找表的索引值进行彩色变换。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-4-8 11:19 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
现在有个疑惑 :单元格填充背景的颜色:
1、只有 56种标准色?
2、如果能自定义填充 R8 G8 B8,自定义颜色如何填充单元格呢?

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-4-8 11:47 | 显示全部楼层
zopey 发表于 2018-4-8 11:19
现在有个疑惑 :单元格填充背景的颜色:
1、只有 56种标准色?
2、如果能自定义填充 R8 G8 B8,自定义颜 ...

当桌面分别设置为真彩32位(对应按钮1)、高彩16位(对应按钮2),
vba 读取vba 单元格颜色的值color32 与color16 居然完全一致。

这并不能解释最初的问题 ,按键抓色 两者有差别。

自定义颜色.zip (68.95 KB, 下载次数: 24)

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-6-7 16:07 | 显示全部楼层
问题重新描述:
      1、桌面颜色设置为32色时,某单元格的背景色 =aaa;
      2、桌面颜色重新设置为16色时,此单元格背景色 会有小变化 =bbb ;
      3、求 aaa  与 bbb 的推导关系 或 公式

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-8-14 16:38 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
24位bmp图片 读取像素到工作表单元格,效果如图

444.JPG

24位bmp.zip (179.14 KB, 下载次数: 50)
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-17 09:34 , Processed in 0.036536 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表