我在使用 TikZ 混合颜色时遇到了麻烦。下面的 MWE 无法在我的系统中渲染混合。我在 Windows XP 上使用 MiKTeX 2.9,并从 CTAN 下载并安装了最新版本的 TikZ/PGF。我不知道这是否来自我的 PDF 查看器,因为 Sumatra 甚至没有显示第一个混合组,而 Adobe Reader 确实渲染了所有组,但不正确。有什么提示吗?
代码相当蹩脚,只是为了使其尽可能直接,并避免因扩展、群组或类似情况而出现任何问题。
编辑:我的代码一定有问题,因为使用 Adobe Reader 作为 PDF 查看器时,pstricks 和 TikZ 中的混合/透明样式正确呈现。
\documentclass[11pt]{article}
\usepackage{tikz}
\pagestyle{empty}
\begin{document}
\begin{tikzpicture}[
%remember picture,
%overlay,
]
\begin{scope}[blend group=lighten]
\fill[green] (90:1) circle[radius=1.5];
\fill[blue] (180:1) circle[radius=1.5];
\fill[red] (0:1) circle[radius=1.5];
\end{scope}
\begin{scope}[xshift=6cm,blend group=darken]
\fill[green] (90:1) circle[radius=1.5];
\fill[blue] (180:1) circle[radius=1.5];
\fill[red] (0:1) circle[radius=1.5];
\end{scope}
\begin{scope}[xshift=12cm,blend group=multiply]
\fill[green] (90:1) circle[radius=1.5];
\fill[blue] (180:1) circle[radius=1.5];
\fill[red] (0:1) circle[radius=1.5];
\end{scope}
\begin{scope}[yshift=-4cm,blend group=screen]
\fill[green] (90:1) circle[radius=1.5];
\fill[blue] (180:1) circle[radius=1.5];
\fill[red] (0:1) circle[radius=1.5];
\end{scope}
\begin{scope}[yshift=-8cm,blend group=overlay]
\fill[green] (90:1) circle[radius=1.5];
\fill[blue] (180:1) circle[radius=1.5];
\fill[red] (0:1) circle[radius=1.5];
\end{scope}
\end{tikzpicture}
\end{document}
答案1
这是预期的输出。例如,将深色中的蓝色改为橙色,你会看到它成倍增加。在这里,你使用的是 RGB 中的正交颜色,没有不透明度或透明度。因此,你正在烧毁颜色(它们变得饱和)。要考虑的类比是
(1,0,0) + (0,1,0) + (0,0,1) = (1,1,1)
red green blue = white or black or something else depending on the blend mode
或者,添加every path/.append style={fill opacity=0.75}
,它应该再次显示有意义的结果。
请注意,这些是 PDF 规范的前沿功能,并不是每个查看者都以相同的方式做出反应。而且有些打印机可能不喜欢这些。