如何以通用方式改变图形的颜色?

如何以通用方式改变图形的颜色?

我正在使用一个使用 Font Awesome 5 渲染图标的 LaTeX 模板。遗憾的是,我想要的所有品牌图标并非都存在于 Font Awesome 集中。

我有这个 PNG 文件:

复制代码

我用以下代码渲染它:

        \pointskill{\includegraphics[scale=0.015]{kotlin}}{Kotlin}{4}
        \pointskill{\faRust}{Rust}{1} % Including this for comparison

结果是:

结果输出

我的目标是以通用方式更改图标的颜色。也就是说,它应该iconcolor与此处的定义相匹配:

\colorlet{iconcolor}{maincolor!90}

其中maincolor是可以设置为任意颜色的变量。默认情况下,它是:

\definecolor{cvblue}{HTML}{0E5484}
\colorlet{maincolor}{cvblue}

目前,图标在\pointskill命令中用 呈现\cvicon

\newcommand{\cvicon}[1]{\makebox[0.8em]{\color{iconcolor} #1}}

我曾尝试使用decodearray,按照[此](https://tex.stackexchange.com/a/150219/305810) 回答,但我想我不明白如何使用它,因为当我使用时图像不再呈现decodearray

总而言之,如何更改 PNG 图像中的黑色以匹配可变颜色?

答案1

如果你在 pdfTeX 中定义符号

\newdimen\tenbp \tenbp=10bp
\def\mychar#1#2{% #1: scale #2: move up
   \leavevmode \hbox{%
      \pdfliteral{q #1 0 0 #1 0 #2 cm  0 0 m 10 0 l 5 5 l 10 10 l 0 10 l h f Q}%
      \kern#1\tenbp}}

然后您就可以\mychar{.75}{-1.2}在任意颜色设置中使用。您可以调整两个参数:比例和垂直位置。您无需加载任何外部图形文件。

相关内容