convertColor
位于 grDevices
包(package)。 说明
在标准颜色空间中的表示形式之间转换颜色。
用法
convertColor(color, from, to, from.ref.white, to.ref.white,
scale.in = 1, scale.out = 1, clip = TRUE)
参数
color |
其行指定颜色的矩阵。该函数还将接受数据帧,但会在内部默默地转换为矩阵。 |
from , to |
输入和输出颜色空间。请参阅下面的“详细信息”。 |
from.ref.white , to.ref.white |
参考白色或 |
scale.in , scale.out |
输入除以 |
clip |
如果 |
细节
颜色空间由 colorConverter
类的对象指定,由 colorConverter
或 make.rgb
创建。内置颜色空间可以通过字符串引用: "XYZ"
、 "sRGB"
、 "Apple RGB"
、 "CIE RGB"
、 "Lab"
、 "Luv"
。这些颜色空间的转换器位于对象 colorspaces
中。
"sRGB"
颜色空间是标准 PC 显示器使用的颜色空间。 "Apple RGB"
由 Apple 显示器使用。 "Lab"
和"Luv"
是由国际照明委员会标准化的大致感知统一的空间。 XYZ
是 1931 年的 CIE 标准,能够表示所有可见颜色(以及一些),但不是以感知统一的方式。
Lab
和Luv
空间说明物体的颜色,因此需要参考“白光”颜色的规范。光源D65
是标准间接日光,光源D50
接近直射阳光,且光源A
是来自标准白炽灯泡的光。支持的其他标准 CIE 光源有B
,C
,E
和D55
。 RGB 颜色空间是相对于特定参考白色定义的,并且只能近似转换为其他参考白色。 von Kries 色彩适应算法用于此目的。之前R3.6、涉及创建的颜色空间的颜色转换make.rgb
进行假设D65
光源,与创建色彩空间时使用的实际光源无关。这影响了内置"CIE RGB"
色彩空间。
RGB 色彩空间特定于特定类别的显示器。 RGB 空间无法表示所有颜色,clip
选项控制对超出范围的颜色执行的操作。
对于命名颜色空间 color
必须是 from
颜色空间中的值矩阵:特别是不透明颜色。
值
一个 3 列矩阵,其行指定颜色。
例子
## The displayable colors from four planes of Lab space
ab <- expand.grid(a = (-10:15)*10,
b = (-15:10)*10)
require(graphics); require(stats) # for na.omit
par(mfrow = c(2, 2), mar = .1+c(3, 3, 3, .5), mgp = c(2, .8, 0))
Lab <- cbind(L = 20, ab)
srgb <- convertColor(Lab, from = "Lab", to = "sRGB", clip = NA)
clipped <- attr(na.omit(srgb), "na.action")
srgb[clipped, ] <- 0
cols <- rgb(srgb[, 1], srgb[, 2], srgb[, 3])
image((-10:15)*10, (-15:10)*10, matrix(1:(26*26), ncol = 26), col = cols,
xlab = "a", ylab = "b", main = "Lab: L=20")
Lab <- cbind(L = 40, ab)
srgb <- convertColor(Lab, from = "Lab", to = "sRGB", clip = NA)
clipped <- attr(na.omit(srgb), "na.action")
srgb[clipped, ] <- 0
cols <- rgb(srgb[, 1], srgb[, 2], srgb[, 3])
image((-10:15)*10, (-15:10)*10, matrix(1:(26*26), ncol = 26), col = cols,
xlab = "a", ylab = "b", main = "Lab: L=40")
Lab <- cbind(L = 60, ab)
srgb <- convertColor(Lab, from = "Lab", to = "sRGB", clip = NA)
clipped <- attr(na.omit(srgb), "na.action")
srgb[clipped, ] <- 0
cols <- rgb(srgb[, 1], srgb[, 2], srgb[, 3])
image((-10:15)*10, (-15:10)*10, matrix(1:(26*26), ncol = 26), col = cols,
xlab = "a", ylab = "b", main = "Lab: L=60")
Lab <- cbind(L = 80, ab)
srgb <- convertColor(Lab, from = "Lab", to = "sRGB", clip = NA)
clipped <- attr(na.omit(srgb), "na.action")
srgb[clipped, ] <- 0
cols <- rgb(srgb[, 1], srgb[, 2], srgb[, 3])
image((-10:15)*10, (-15:10)*10, matrix(1:(26*26), ncol = 26), col = cols,
xlab = "a", ylab = "b", main = "Lab: L=80")
cols <- t(col2rgb(palette())); rownames(cols) <- palette(); cols
zapsmall(lab <- convertColor(cols, from = "sRGB", to = "Lab", scale.in = 255))
stopifnot(all.equal(cols, # converting back.. getting the original:
round(convertColor(lab, from = "Lab", to = "sRGB", scale.out = 255)),
check.attributes = FALSE))
参考
For all the conversion equations http://www.brucelindbloom.com/.
For the white points https://web.archive.org/web/20190613001950/http://efg2.com/Lab/Graphics/Colors/Chromaticity.htm.
也可以看看
col2rgb
和 colors
了解在图形中指定颜色的方法。
make.rgb
用于指定其他颜色空间。
相关用法
- R contourLines 计算轮廓线
- R col2rgb 颜色到 RGB 转换
- R colorRamp 颜色插值
- R colors 颜色名称
- R chull 计算一组点的凸包
- R check.options 设置带有一致性检查的选项
- R cairo 基于 Cairgraphics 的 SVG、PDF 和 PostScript 图形设备
- R cm 单位改造
- R cairoSymbolFont 指定符号字体
- R axisTicks 计算漂亮的轴刻度
- R hcl HCL 颜色规格
- R quartzFonts 石英字体
- R as.graphicsAnnot 强制图形注释对象
- R xyTable (x,y) 点的重数,例如,对于向日葵图
- R dev.interactive 当前图形设备是否具有交互性?
- R X11Fonts X11 字体
- R plotmath R 中的数学注释
- R dev.capture 将设备输出捕获为光栅图像
- R dev.size 查找设备表面的尺寸
- R pdf.options 设置/查看 pdf 参数默认值的辅助函数
- R densCols 平滑密度图的颜色
- R windows Windows 图形设备
- R rgb RGB 颜色规格
- R msgWindow 操纵窗口
- R dev.flush 保持或刷新屏幕图形设备上的输出
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Convert between Colour Spaces。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。