求HEX色值转CMYK/HSL/HSB值的VBA代码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求HEX色值转CMYK/HSL/HSB值的VBA代码相关的知识,希望对你有一定的参考价值。

已知:A列A2开始为HEX色值
求:
B列B2开始求HEX值对应CMYK值的VBA代码
C列C2开始求HEX值对应HSL值的VBA代码
D列D2开始求HEX值对应的HSB值的VBA代码
E列E2开始求HEX值对应的WEBSAFE值的VBA代码

参考技术A 编写代码的时候,颜色的代码有多种格式,如RGB(255,255,255)对应CMYK(0,0,0,0)对应#ffffff(HEX格式),那么,这三者间要如何转换呢?

工具/原料

Photoshop
RGB

1
定义
RGB是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的(来自百度百科)

2
代码格式
RGB代码的表现形式为(x,x,x),其中0≤x≤255
如(0,0,0)代表红绿蓝数值均为0,也就是黑色。

END
CMYK

1
定义及与RGB的区别
C(青)M(洋/品红)Y(黄)K(黑),CMYK也称作印刷色彩模式。
屏幕上显示的图像,是RGB模式呈现的,而印刷品上的图像,是CMYK模式表现的。

2
格式
CMYK代码的表现形式为(x,x,x,x),其中0≤x≤100,这里的x是一种百分值。
如白色的CMYK格式是(0,0,0,0)

END
Hex code

Hex code的格式为#+六位数字/字母,如纯蓝色是#0000FF

END
数值转换方法

1
知道了三类颜色码中的任一种,如何换算成另外两种,这里推荐使用Photoshop或者AI等设计软件,本文以ps为例。

2
打开ps,点击【文件】-【新建】,新建一个任意尺寸的画板。

3
然后选择【编辑】-【填充】

4
弹出的对话框里内容选项选择“颜色…”

5
调色板如图所示位置,分别对应RGB、CMYK和hex的数值

6
例如要把RGB(200,100,0)转换成CMYK,就在RGB区域对应输入这三个数值,之后CMYK版块显示的就是其对应的CMYK数值(27,71,100,0)
望采纳!
参考技术B 可以进一步咨询楼主写代码中的难点在哪里吗,是不知道转换的算法呢,还是不熟悉VBA语法追问

算法跟语法都不清楚

追答

那一步一步的来吧,先来看看RGB到CMYK的转换,算法百度拷屏见图一,依照算法写的VBA程序代码见图二,程序执行的示例情况见图三:

追问

老哥,非常感谢!这算法不对啊,你可以试试下面这些HEX颜色,带一堆小数,重要的是算出的结果也不对。
另外,能不能不用宏?比如设置一个公式,谢谢!
CDBA88
D0B084
D2AA6D
F9A800
E49E00
CB8E00

追答

帖子要求的是VBA代码呀,宏就是VBA。前面代码的CMYK值为百分比,再乘以100取整才是结果,修改如下:

追问

老哥,这算法不对啊,你可以查下算出来的结果,第一个CDBA88,对应的CMYK值应该是(5,10,40,10),下面那些值也都不对

追答

老师这标准答案与互联网的不同,学生为难了。

ios开发常用RGB色值

参考技术A

iOS中RGB常用的色值

在设置颜色是用[UIColor colorWithRed: green: blue: alpha:] 有时会遇到颜色不显示的问题
问题的所在:RGB的颜色值范围都是在0.0 1.0之间的,并不是0 255。

以上是关于求HEX色值转CMYK/HSL/HSB值的VBA代码的主要内容,如果未能解决你的问题,请参考以下文章

ios开发常用RGB色值

RPG色值0,114,114是啥颜色

十进制色值转十六进制

金色的色值是多少呀?

IOS::HEX色值的设置

JavaScript 随机生成 hex色值