[R] Convert color hex code to color names
David L Carlson
dcarlson at tamu.edu
Mon Apr 13 19:07:11 CEST 2015
And expanding at a more elementary level. The reason you need to find the smallest difference is
that all of the possible colors do not have names. There are 256^3 = 16,777,216 possible rgb color designations, but only 657 named colors. You can create a data frame of the named colors and their rgb designations using
> clrs <- data.frame(Color=colors(), RGB=rgb(t(col2rgb(colors())),
maxColorValue=255), stringsAsFactors=FALSE)
> str(clrs)
'data.frame': 657 obs. of 2 variables:
$ Color: chr "white" "aliceblue" "antiquewhite" "antiquewhite1" ...
$ RGB : chr "#FFFFFF" "#F0F8FF" "#FAEBD7" "#FFEFDB" ...
> head(clrs)
Color RGB
1 white #FFFFFF
2 aliceblue #F0F8FF
3 antiquewhite #FAEBD7
4 antiquewhite1 #FFEFDB
5 antiquewhite2 #EEDFCC
6 antiquewhite3 #CDC0B0
So most colors do not have names. In your example, none of the colors in rainbow(6) have names:
> rain <- rainbow(6)
> sum(clrs$RGB %in% rain)
[1] 0
-------------------------------------
David L Carlson
Department of Anthropology
Texas A&M University
College Station, TX 77840-4352
-----Original Message-----
From: R-help [mailto:r-help-bounces at r-project.org] On Behalf Of Boris Steipe
Sent: Monday, April 13, 2015 11:44 AM
To: Alejo C.S.
Cc: r-help at r-project.org
Subject: Re: [R] Convert color hex code to color names
To add slightly to that:
What you want to do is write a function that returns the named color that has the smallest difference to your input hex-triplet. But note that color difference is a large topic. Assuming you want to minimize *perceptual* differences, you want to calculate your differences in Lab color space. The function convertColor() has the option to convert hex to Lab. Example:
convertColor(t(col2rgb("thistle")), from="sRGB", to="Lab", scale.in=255)
Within Lab space, you can take the Euclidian distance.
That all said, I can't imagine why one would want to do this in the first place - color triplets are much more convenient than label strings :-)
B.
On Apr 13, 2015, at 11:45 AM, Thierry Onkelinx <thierry.onkelinx at inbo.be> wrote:
> A combination of rgb(), col2rgb() and colors() can gives hex values for the
> named colors.
>
> ir. Thierry Onkelinx
> Instituut voor natuur- en bosonderzoek / Research Institute for Nature and
> Forest
> team Biometrie & Kwaliteitszorg / team Biometrics & Quality Assurance
> Kliniekstraat 25
> 1070 Anderlecht
> Belgium
>
> To call in the statistician after the experiment is done may be no more
> than asking him to perform a post-mortem examination: he may be able to say
> what the experiment died of. ~ Sir Ronald Aylmer Fisher
> The plural of anecdote is not data. ~ Roger Brinner
> The combination of some data and an aching desire for an answer does not
> ensure that a reasonable answer can be extracted from a given body of data.
> ~ John Tukey
>
> 2015-04-13 17:28 GMT+02:00 Alejo C.S. <alej.c.s at gmail.com>:
>
>> Hi all, I want to convert the output of:
>>
>>> rainbow(6)
>>
>>> [1] "#FF0000FF" "#FFFF00FF" "#00FF00FF" "#00FFFFFF" "#0000FFFF"
>> "#FF00FFFF"
>>
>> To a vector of color names. Any tip?
>>
>>
>> Thanks in advance
>>
>> C.
>>
>> [[alternative HTML version deleted]]
>>
>> ______________________________________________
>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide
>> http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>>
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
______________________________________________
R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
More information about the R-help
mailing list