我正在寻求对R中的颜色矢量执行简单操作的任何有效方法,例如亮度和对比度。我有一个hacky方法,它将十六进制字符串转换为数值,并通过例如增加/减少亮度值或调整它们以获得亮度对比度来调整这些值,然后再转换回十六进制。它工作但但是太慢而无法以交互方式运行,我无法看到任何具有此功能的库(例如颜色空间)。有没有人知道另一种方法?提前谢谢。
这说明了变暗的流程(最简单的操作):
cols = rainbow(100)
d = data.frame(x = 1:100, y0=rep(0,100), y1=rep(100,100))
plot_cols = function(colours){
plot.new(); plot.window(xlim=c(0,100), ylim=c(0,100))
segments(d$x, d$y0, d$x, d$y1, col=colours, lwd=5)
}
plot_cols(cols)
cols_num = t(col2rgb(cols))/255
plot_cols( rgb(cols_num * .5) )
对比效果需要标准偏差sd
,这是我认为的瓶颈。