如何从脚本的纯色图像中获取十六进制颜色代码?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从脚本的纯色图像中获取十六进制颜色代码?相关的知识,希望对你有一定的参考价值。

我正在编写一个脚本,将我在Linux机器上的背景更改为一组包含纯色的图像中的随机图像。我想要做的是扩展这个脚本,以相应地主题某些应用程序(主要是终端应用程序),至少改变文本颜色,可能从黑暗背景切换到浅背景等。我想知道我有什么选择获取图像中颜色的十六进制代码。我能用bash做点什么吗?我是否需要用更健壮的语言编写程序并将十六进制代码作为输出?是否有更好的方法完全这样做?到目前为止,我的搜索有点不确定。

答案

我强烈建议使用ImageMagick来完成这项任务。 documentation提到了如何从图像中提取数据。

从“提取平均颜色”:

通过使用“-scale”将图像缩小为单个像素,可以非常快速地找到图像的平均颜色。这里例如是内置“rose:”图像的平均颜色。我使用FX Escape格式输出颜色,它返回一个颜色字符串,可以直接使用IM而无需更改。

user@laptop:~$ convert rose: -scale 1x1! -format '%[pixel:s]
' info:-

将输出:srgb(146,89,80)

在您的情况下,将rose:替换为您的图像文件,例如foo.png

如果您想直接以十六进制表示法输出,请使用:

convert rose: -scale 1x1! -format '%[pixel:s]
' info:- | awk -F '[(,)]' '{printf("#%x%x%x
",$2,$3,$4)}'

以上是关于如何从脚本的纯色图像中获取十六进制颜色代码?的主要内容,如果未能解决你的问题,请参考以下文章

android中如何获得drawable的颜色值?

如何从图像中获取像素的颜色?

使用 javascript 或 php 从图像中获取所有 HEX 值

如何将 RGB 输入转换为十进制颜色代码?

echarts-颜色渐变

AEJoy —— 表达式之从图像中采样颜色数据JS