File Exchange

image thumbnail

rgbconv.m

version 1.0 (2.78 KB) by

Convert hex color to or from MATLAB color vector. (with syntactic sugar).

2 Downloads

Updated

No License

I know this routine might be a clone. But the nifty thing with this is that you can enter the color code in many different formats as explained below.

It also senses what type of data you input wheter it is hexadecimal or if it is a MATLAB rgb vector, so you don't have to tell it which format you want to convert to!

Here comes the help section:
%%%%%%%%%%%%%%%%%%%%%%

RGBCONV Convert hex color to or from MATLAB rgb vector.
    RGB = RGBCONV(HEX) where HEX is a string of hexadecimal numbers
       'RRGGBB' where the parts RR, GG, BB are two digit hexadecimal
       numberes corresponding to the strengths of the colors red,
       green and blue. RGB is the matlab rgb-vector.
    RGB = RGBCONV(HEX) where HEX is a string matrix of the form
       ['RR';'GG';'BB'], or a cell string {'RR','GG','BB'}, or
    RGB = RGBCONV('RR','GG','BB')
    [R,G,B] = RGBCONV(...) gives the corresponding matlab rgb-values
    as scalar values in R, G and B correspondingly.
 
    HEX = RGBCONV(RGB) where RGB is a matlab rgb-vector with
       three elements each corresponding to strengs of
       red, green and blue and ranging between 0 and 1.
    HEX = RGBCONV(R,G,B) where R, G and B are scalar values
       ranging between 0 and 1 each corresponding to red, green
       and blue.
       HEX is a string containing the hex values and is of length 6.
    ['RR','GG','BB'] = RGBCONV(...) gives the corresponding hex
       values as two character strings 'RR', 'GG' and 'BB'
 
    Examples:
       rgbconv([.1 .2 .3])
       rgbconv(.55,.6,.12)
       [r,g,b]=rgbconv([.1 .2 .3])
       rgbconv('1a334d')
       rgbconv('1a','33','4d')
       [r,g,b]=rgbconv({'F1','2A','55'})
 
    See also COLORMAP.

Comments and Ratings (4)

With the fix from per isakson, this works well.

Nice code, was very helpful for GUI dev.

per isakson

No, the problem is with rgbconv. To fix it add ",2" to line 67:

   out=dec2hex(round(255*arg),2);

per isakson

[0,0,0] cuases a runtime error (R2008a). I would say it is rather a bug in Matlab than in rgbconv.
/ per

>> rgbconv([0,0,0])
??? Error using ==> reshape
To RESHAPE the number of elements must not change.

Error in ==> rgbconv at 68
   out=reshape(out',1,6);

MATLAB Release
MATLAB 5.2 (R10)
Acknowledgements

Inspired: Colormap Dropdown Menu, rgb2hex and hex2rgb

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video