如何使 Includegraphics 图像变亮或变暗

如何使 Includegraphics 图像变亮或变暗

考虑一下代码

\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}

产生

在此处输入图片描述

请注意,下方的蓝色矩形比上方的蓝色图像稍微暗一些。

我希望它们是相同的;并且我似乎可以通过稍微减轻(如果可能的话)下方的includegraphicspng 图像来实现这一点。

我觉得我无法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)。

警告:这似乎适用于pdftexxetex,但不能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}

输出

相关内容