使用 graphicx 进行图形包含时颜色会发生变化

使用 graphicx 进行图形包含时颜色会发生变化

我有(几张)PNG图像,其背景颜色为RGB(80,64,83):

具有相同背景的单色图像

相同的背景,但带有斜线

当放置在具有相同背景颜色的页面上时graphicx,它们会显示出与背景不同的色调——在 XeLaTeX 下运行时,背景颜色相同。在 pdfLaTeX 或 LuaLaTeX 下没有问题。

\documentclass{report}

\usepackage{xcolor}
\definecolor{bgcolor}{RGB}{80,64,83}

\usepackage{graphicx}
\pagestyle{empty}

\begin{document}

\pagecolor{bgcolor}
\includegraphics[width=0.5\textwidth]{A.png}
\quad
\includegraphics[width=0.5\textwidth]{B.png}

\medskip

\includegraphics[width=0.5\textwidth]{A-gimp.png}
\quad
\includegraphics[width=0.5\textwidth]{B-gimp.png}

\end{document}

在此处输入图片描述

检查所包含文件中的颜色可以看到,所包含图像中的颜色已从 (80,64,83) 更改为 (71,56,74)。

只需打开图像GIMP并按原样导出,即可使用默认选项

默认设置

修复了所有问题,新包含的内容现在获得了它们最初设置的颜色,与背景相同,如下所示(第二行)。使用或处理图像也pdflatex不会lualatex显示问题。

四幅图像合在一起

当将 PNG 包含在页面中时,XeTeX 需要从 PNG 中提取什么来保留其颜色?

为了进行实验,以下是使用 打开和关闭后的相同图像GIMP

在此处输入图片描述

在此处输入图片描述

2021年1月10日编辑:只有在 XeLaTeX 下运行时才会出现此问题。在 pdfLaTeX 或 LuaLaTeX 下不会出现任何问题。

编辑于20201年1月11日:Ulrike Fischera(TeXhax 的)已确定问题出在处理dvipdfmx后端xetex。她和 David Purton(下图)查看 PDF 后发现,前两幅图像使用了错误的色彩空间 (CalRGB),后两幅图像使用了 DeviceRGB。

答案1

您的原始图像和通过 Gimp 保存的图像之间存在一些与色彩空间相关的差异。

您可以通过 ImageMagick 来查看它们identify -verbose

检查生成的 PDF 文件显示,原始 PNG 最终使用 CalRGB 色彩空间,而 Gimp 仅使用 DeviceRGB。这足以在您的 PDF 中产生色彩偏移。

我认为最好的选择是从原始 PNG 文件中删除所有 ICC 颜色配置文件信息。这将确保 PDF 中的图像以与纯色相同的方式处理。

再次,你可以使用 ImageMagick 来执行此操作:

赶紧跑:mogrify -strip A.png

答案2

使用 GIMP 创建的三张 PNG 图像,RGB 值分别为 71,56,74;79,62,82 和 80,64,83:

1.png:1.png      2.png:2.png      3.png:3.png

现在已加框:第一行带有不同颜色的框,以供参考。第二行具有相同的框,但框的颜色在 LaTeX 中定义,应与图像颜色相匹配。另外两行具有相同的框,但位置不同,以便仔细比较三种颜色。

\documentclass{article}
\usepackage{graphicx}
\usepackage{xcolor}
\definecolor{color1}{RGB}{71,56,74}
\definecolor{color2}{RGB}{79,62,82}
\definecolor{color3}{RGB}{80,64,83}
\begin{document}
%\pagecolor{color3}
\fboxsep15pt
\fcolorbox{red}{olive}{\includegraphics{1.png}}
\fcolorbox{red}{olive}{\includegraphics{2.png}}
\fcolorbox{red}{olive}{\includegraphics{3.png}}\par
\fcolorbox{red}{color1}{\includegraphics{1.png}}
\fcolorbox{red}{color2}{\includegraphics{2.png}}
\fcolorbox{red}{color3}{\includegraphics{3.png}}
\fcolorbox{red}{color2}{\includegraphics{1.png}}\par
\fcolorbox{red}{color3}{\includegraphics{2.png}}
\fcolorbox{red}{color1}{\includegraphics{3.png}}
\fcolorbox{red}{color3}{\includegraphics{1.png}}\par
\fcolorbox{red}{color1}{\includegraphics{2.png}}
\fcolorbox{red}{color2}{\includegraphics{3.png}}
\end{document}

姆韦

正如您在此处看到的,LaTeX 定义的颜色与图像的 RGB 值完全匹配。

请注意,您的第一个原始 PNG 不是我示例中的“color3”,而是“color2”(至少在 Chrome、Xviewer 或颜色选择器中,RGB 值为 79,62,82)。

由于某种原因,您的第一个文件(但不在我的文件 2.png 中)中的 79,62,82(“color2”)在 LaTeX PDF 中显示为 71,56,74(“color1”),而在 Gimp 窗口中则更改为 80,64,83(“color3”)。我不知道这种情况是否是因为您的文件被索引、损坏或其他原因而发生的。由于对同一文件有三种不同的解释,很难说哪个程序是错误的或为什么。但是当 PNG 由 Gimp(2.png)制作或保存时,对于它在 LaTEX 的 PDF、此处发布的图像或 Gimp 窗口中应该是什么,并没有不同的解释,所以这似乎不是 LaTeX 的问题,而是原始图像的问题。也许是非标准的 PNG 文件头?

相关内容