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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。