只需转换十六进制颜色值和RGB颜色值。这两个功能可以处理作为输入的数组。默认RGB值缩放为0到1以匹配MATLAB的语法。但是,如果您想使用从0到255缩放的RGB值,那也可以工作。
句法:
RGB = HEX2RGB(HEX)返回n x 3阵列中的RGB颜色值。默认情况下,值缩放为0到1。
RGB = HEX2RGB(HEX,255)返回从0到255缩放的RGB值。
* * * * * * * * * * * * * * * * * * * *
例子:
myrgbvalue = hex2rgb('#334d66')
= 0.2000 0.3020 0.4000
myrgbvalue = hex2rgb('334d66')%<-sthe#sign是可选的
= 0.2000 0.3020 0.4000
myrgbvalue = hex2rgb('#334d66',255)
= 51 77 102
Myhexvalues = ['#334d66';'#8099b3';'#cc9933';'#3333e6'];
myrgbvalues = hex2rgb(Myhexvalues)
= 0.2000 0.3020 0.4000
0.5020 0.6000 0.7020
0.8000 0.6000 0.2000
0.2000 0.2000 0.9020
Myhexvalues = ['#334d66';'#8099b3';'#cc9933';'#3333e6'];
myrgbvalues = hex2rgb(Myhexvalues,255)
= 51 77 102
128 153 179.
204 153 51.
51 51 230.
********************************************************
另一个功能
********************************************************
句法:
HEX = RGB2HEX(RGB)返回N x 3 RGB值的十六进制颜色值。RGB可以是一个数组。此函数假定RGB值在0到1级上的[r g b]格式。然而,如果任何值R,G或B超过1,则该函数假定[r g b]在0到255之间缩放。
* * * * * * * * * * * * * * * * * * * *
例子:
Myhexvalue = RGB2HEX([0 1 0])
=#00ff00.
Myhexvalue = RGB2HEX([0 255 0])
=#00ff00.
myrgbvalues = [.2 .3 .4;
.5 .6 .7;
.8 .6 .2;
.2 .2 .9];
myhexvalues = rgb2hex(myrgbvalues)
=#334d66
#8099b3
#cc9933
#3333e6.
Chad Greene(2021)。RGB2HEX和HEX2RGB.(//www.tianjin-qmedu.com/matlabcentral/fileexchange/46289-rgb2hex-and-hex2rgb),matlab中央文件汇款。检索到。
灵感来自:RGBCONV.M.那灰度为RGB转换器那Colormap和Colorbar Utilities(2014年7月)那美丽和可区分的线颜色+ ColorMap那hextorgb.那Hex2RGB.
启发:Biofilmq.那颜色选择器那来自XKCD的直观RGB颜色值那RGBMAP颜色图那墨菲图那image2palette:简单的K-means颜色聚类
做了什么。
我现在知道了。从1-255范围内的圆形OFF。
反向函数并不总是返回原始值。我错过了什么?
RGBV = [0.4375 0.5000 0.5625];
Hex = RGB2HEX(RGBV);
RGBV2 = Hex2RGB(十六进制);
Acheck = RGBV-RGBV2
Acheck = -0.0017 -0.0020 0.0017
谢谢
斯蒂芬:你有一个完美的例子是如何伟大的反馈而没有好。感谢您的周到,有用的建议 - 我已将它们纳入最新的更新。
做它在盒子上说的话。清楚地写,几个有用的例子,有帮助文本和H1线。我喜欢这种风格:作者已经向最终用户提供了相关的使用信息,并清楚地明确表示他们试图使其有用,虽然“另见”的行有点简短:“Num2Str”,“SSCANF”,“Dec2Hex”也是如此?
由于MLINT消息指示......,代码可能有几个调整以使其更加微距。
- “Hex2RGB”将输入矩阵分成单独的向量,并用“Hex2Dec”解析,然后在稍后将这些返回在一起。保持矩阵汇总使其更加简单,更快:
RGB = REPAPE(SSCANF(十六进制','%2x'),3,[])。';
- “Hex2RGB”使用“存在”可选参数,“Nargin”更快。
- “RGB2HEX”在“for”循环中呼叫多个“sprintf”实例,无需任何阵列预释:大型输入将缓慢,但可以用一个呼叫拨打“Sprintf”,无需循环(矢量化!):
十六进制(:,2:7)= REPAPE(SPRINTF('%02x',RGB。'),6,[])。';
十六进制(:,1)='#';
五星的帮助和清晰度,三星为代码。