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