考虑一下代码
\documentclass{article}
\usepackage{graphicx,xcolor}
\usepackage{transparent}
\begin{document}
\begin{figure}[!htb]
\centering
\includegraphics[width=20em,height=30em]{example-image}\llap{\texttransparent{0.5}{\color{blue!90}\rule{20em}{30em}}}
\end{figure}
\vspace*{-45pt}
\hskip 150pt\includegraphics[scale=4.5]{Blue_Image.png}
\end{document}
产生
请注意,下方的蓝色矩形比上方的蓝色图像稍微暗一些。
我希望它们是相同的;并且我似乎可以通过稍微减轻(如果可能的话)下方的includegraphics
png 图像来实现这一点。
我觉得我无法includegraphics
在 Latex 中更改图像的颜色,但似乎可以简单地使图像变亮或变暗。也许我错了。
问题:有没有办法通过命令使 png 图像变亮或变暗includegraphics
;如果可以,该如何做?
谢谢。
答案1
我认为使用decodearray
选项\includegraphics
可以满足您的目的。基于这个答案。
对于 RGB 图像,decodearray
需要 3 对介于 0 和 1 之间的数字。这三对数字分别调整红色、绿色和蓝色通道。对于您的情况,您可以将三对数字设置为相同,因为您只想使每幅图像变亮(或变暗),而不是实际更改颜色。
这对数字将通道级别(从 0 到 1)线性映射到您在两个数字中指定的新比例上。
因此,要减轻 50% 的亮度,您需要使用decodearray={0.5 1 0.5 1 0.5 1}
。换句话说,对于每个通道 (0 … 1) → (0.5 … 1)。
警告:这似乎适用于pdftex
和xetex
,但不能luatex
(漏洞?)。
平均能量损失
您需要图像 ( blue_square.png
):
\documentclass{article}
\usepackage{graphicx}
\begin{document}
\includegraphics{blue_square}
\includegraphics[decodearray={0.2 1 0.2 1 0.2 1}]{blue_square}
\includegraphics[decodearray={0.4 1 0.4 1 0.4 1}]{blue_square}
\includegraphics[decodearray={0.6 1 0.6 1 0.6 1}]{blue_square}
\includegraphics[decodearray={0.8 1 0.8 1 0.8 1}]{blue_square}
\includegraphics[decodearray={1 1 1 1 1 1}]{blue_square}
\bigskip
\includegraphics{blue_square}
\includegraphics[decodearray={0 0.8 0 0.8 0 0.8}]{blue_square}
\includegraphics[decodearray={0 0.6 0 0.6 0 0.6}]{blue_square}
\includegraphics[decodearray={0 0.4 0 0.4 0 0.4}]{blue_square}
\includegraphics[decodearray={0 0.2 0 0.2 0 0.2}]{blue_square}
\includegraphics[decodearray={0 0 0 0 0 0}]{blue_square}
\end{document}