我有一张背景图片,需要在上面显示一些文本。我想使用图片淡化文本而不影响背景图片。据我了解,这应该是可能的,因为 Ti 中的第 115.3 节“指定淡化”钾Z & PGF 手册指出:
您创建一张普通图片,其中甚至可能包含文本、图像和阴影。然后,您基于此图片创建淡入淡出效果。为此,分析图片每个像素的亮度(像素越亮,亮度越高 - 黑色像素的亮度为 0,白色像素的亮度为 1,灰色像素和红色像素具有某个中间值)。然后,当使用淡入淡出效果时,像素的亮度决定了该位置淡入淡出的不透明度。淡入淡出效果中图片为黑色的位置将完全透明,图片为白色的位置将完全不透明。图片中根本没有绘制的位置始终是完全透明的。
这是一个 MWE不是但做我想做的事:
\documentclass{article}
\usepackage{graphicx}
\usepackage{lipsum}
\usepackage{tikz}
\begin{document}
\pgfdeclarefading{myfading}{fadpix-jpg-rsz}
\begin{tikzpicture}[remember picture, overlay]
\node[inner sep=0pt] at (current page.center) {%
\includegraphics[scale=0.5]{Utah_Teapot_mr_maya.jpg}
};%
\begin{scope}[shift={(current page.center)}]
\pgfsetfading{myfading}{\pgftransformshift{\pgfpoint{1cm}{1cm}}} % causes text to disappear
\node[white,text width=11.0cm] at (0.0cm,0.0cm) {\lipsum[1-2]};
\end{scope}
\end{tikzpicture}
\end{document}
我正在使用犹他茶壶作为示例背景图片和利普萨姆生成一些示例文本。图片fadpix-jpg-rsz
如下:
要清楚:我希望使用此图片淡化文本,但背景图片(茶壶)不受影响。目前,带有 的行\pgfsetfading
会导致整个文本消失。当我将其注释掉时,文本可见。
我做错了什么?我想要的可以实现吗?
(旁注:我使用了article
而不是类,standalone
因为后者一直给我两页空的文档,而第二页很长。当我使用该preview
选项时,导致文档Skim
崩溃并且 MacOSPreview
显示空文件。)
答案1
嗯,首先您实际上需要使用淡入淡出的图片,而不仅仅是设置文本 fadpix-jpg-rsz。
第二次,看起来好像不能通过坐标移动淡入淡出效果(至少不能使用 pgf 命令,也许可以使用 tikz 键),它卡在左上角。但如果我使用 shipout/background 钩子将图片移到中心,它就可以工作了:
\documentclass{article}
\usepackage{graphicx}
\usepackage{lipsum}
\usepackage{tikz}
\pgfdeclarefading{myfading}{\includegraphics[width=11cm]{fadpix-jpg-rsz.jpg}}
\begin{document}
\mbox{}
\AddToHook{shipout/background}
{
\put(0.5\paperwidth,-0.5\paperheight)
{%
\begin{tikzpicture}[remember picture,overlay]
\node[inner sep=0pt] {%
\includegraphics[width=11cm]{Utah_Teapot_mr_maya.jpg}
%\includegraphics[width=11cm]{fadpix-jpg-rsz.jpg} %for test
};%
\begin{scope}[scope fading=myfading]
\pgfsetfading{myfading}{} %
\node[text=white,text width=11.0cm]
{\lipsum[1-3]};
\end{scope}
\end{tikzpicture}
}}
\end{document}