So verblassen Sie eine schattierte Box

So verblassen Sie eine schattierte Box

Ich versuche, ein Bild mit einem schattierten transparenten Feld zu überlagern, um in das Feld schreiben zu können, wie hier:

\documentclass{report}
\usepackage{xcolor}
\definecolor{lblue}{RGB}{15,77,158}
\usepackage{tikz}

\begin{document}

\begin{tikzpicture}
    \node[] at (0,0) {\includegraphics[width=0.9\textwidth,]{IMG_2124_Everest.jpg}};
    \shade [left color=lblue, right color=lblue, opacity=0.6] (-4,1) rectangle (4,2.5);
    \node[shift={(-0.0cm,1.73cm)}] at (0,0) { \textcolor{white}{\Huge\textbf{Mount Everest}} };
\end{tikzpicture}

\end{document}

Bild von: http://upload.wikimedia.org/wikipedia/commons/0/00/IMG_2124_Everest.jpg

und ich möchte den Rand des schattierten Felds ausblenden, um die Sichtbarkeit der Linie, die es definiert, zu verringern.

Ich habe gelesen:

aber ich weiß nicht, wie ich es auf eine schattierte Box anwenden soll. Ist das überhaupt möglich?

Bild von:http://upload.wikimedia.org/wikipedia/commons/0/00/IMG_2124_Everest.jpg

Antwort1

Diese Lösung verwendet eine foreachSchleife, um von einer inneren rechteckigen Box zu einer äußeren Box mit abgerundeten Ecken zu gelangen. Weitere Lösungen finden Sie in den verknüpften Fragen im OP.

\documentclass[tikz, border=1cm]{standalone}
\usetikzlibrary{fadings}
\pgfmathsetmacro{\mywidth}{9}
\pgfmathsetmacro{\myheight}{3.5}
\pgfmathsetmacro{\myfadewidth}{1}
\begin{tikzfadingfrompicture}[name=myfading]
\foreach \i in {100,...,0}
\fill[transparent!\i, rounded corners=\myfadewidth/100*\i cm] (-\mywidth/2-\myfadewidth/100*\i+\myfadewidth,-\myheight/2-\myfadewidth/100*\i+\myfadewidth) rectangle (\mywidth/2+\myfadewidth/100*\i-\myfadewidth,\myheight/2+\myfadewidth/100*\i-\myfadewidth);
\end{tikzfadingfrompicture}
\begin{document}
\begin{tikzpicture}
\node {\includegraphics[width=12cm]{example-image}};
\node[
fill=blue, text=white, 
fill opacity=0.6, text opacity=1,
minimum width=\mywidth cm, minimum height=\myheight cm,
path fading=myfading, fit fading=false,
font=\Huge\bf,
yshift=1.5cm, fading transform={yshift=1.5cm},
] {Mount Everest};
\end{tikzpicture}
\end{document}

Der Text "Mount Everest" in einem verblassten blauen Feld auf einem Beispielbild

Der Text „Mount Everest“ in einem verblassten blauen Feld auf einem Bild des Mount Everest

Anstelle einer Schleife \pgfdeclarefunctionalshadingkönnte man auch ein verwenden, aber das ist nicht so einfach und im Handbuch steht folgende Warnung:

Diese Schattierungen sind von allen am wenigsten portierbar und stellen die größte Belastung für den Renderer dar. Sie sind langsam und werden möglicherweise nicht richtig gedruckt!

verwandte Informationen