我注意到,对于我来说,25% 的不透明度与白色背景产生的结果与将 75% 的白色混合到颜色中产生的结果不同。这是为什么?正确的方法是不透明度不变但颜色相同(至少对于白色背景而言)。
这里是 MWE:
\documentclass[xcolor=dvipsnames]{article}
\usepackage[dvipsnames]{xcolor}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw[ black!25!white,fill=RoyalBlue!25!white] (0.0,0) circle (0.7cm);
\draw[opacity=0.25, fill=RoyalBlue] (3,0) circle (0.7cm);
\end{tikzpicture}
\end{document}
答案1
修复该问题的最快方法是用dvipsnames
替换svgnames
。
percusse 的评论大致正确。实际问题是,RoyalBlue
indvipsnames
的定义是使用CMYK模型。虽然我们期望颜色混合中的线性插值,CMYK根据 PDF 标准,模型按以下方式处理:
- 这C,米, 和是组件应转换为其互补R,G, 和乙组件以通常的方式。前述公式应适用于RGB颜色值。结果应转换回C,米, 和是。
- 为了钾组件,结果应为钾的组成部分乙为了色调,饱和, 和颜色混合模式;它应为钾的组成部分CS为了亮度混合模式。
(乙= 背景颜色;CS= 源颜色)
这表明,一般来说,涉及CMYK永远不会是线性的,除非钾组件相同。