TikZ:将颜色与白色混合并使用白色背景设置不透明度会产生不同的结果

TikZ:将颜色与白色混合并使用白色背景设置不透明度会产生不同的结果

我注意到,对于我来说,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 的评论大致正确。实际问题是,RoyalBlueindvipsnames的定义是使用CMYK模型。虽然我们期望颜色混合中的线性插值,CMYK根据 PDF 标准,模型按以下方式处理:

  • C, 和组件应转换为其互补RG, 和组件以通常的方式。前述公式应适用于RGB颜色值。结果应转换回C, 和
  • 为了组件,结果应为的组成部分为了色调饱和, 和颜色混合模式;它应为的组成部分CS为了亮度混合模式。

= 背景颜色;CS= 源颜色)

这表明,一般来说,涉及CMYK永远不会是线性的,除非组件相同。

相关内容