在 UNIX shell 脚本中将十六进制颜色转换为十进制 RGB 值
我确信有人已经解决了这个问题:有什么简单且便携的方法可以将十六进制颜色值(从 000000 到 FFFFFF 的任何值)转换为 0 到 255 之间的 3 个十进制值。(如果您不熟悉颜色如何转换)传统上用 HTML 表示,前两个十六进制数字是第一个十进制数字,依此类推。)
I'm sure someone has already solved this problem: what is an easy and portable way to convert a hex color value (anything from 000000 to FFFFFF) to 3 decimal values from 0 to 255. (If you're not familiar with how colors are traditionally represented in HTML, the first two hex digits are the first decimal number, and so forth.)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
如果您不愿意使用 bash 进行子字符串扩展,我仍然会使用 printf 进行转换。
If you are not willing to use bash for substring expansion, I'd still use printf for the conversion.
您可以使用像这样的脚本:
并像这样使用它:
产生像这样的输出:
它可以通过测试参数等来改进,但它可以满足您的要求。
You can use a script like:
and use it like:
resulting in output like:
It can be improved by testing for arguments and so on, but it does what you want.
如果您需要此脚本的 POSIX 兼容版本来处理更有效的 CSS 十六进制颜色格式(即:带 alpha 通道的 4 部分
#AABBCCDD
、3 字符快捷方式#FFF
) ,这应该可以解决问题:If you need a POSIX compatible version of this script that handles more valid CSS hex color formats (ie: 4-part with alpha channel
#AABBCCDD
, 3 char shortcuts#FFF
), this should do the trick:我知道这个问题已经很老了,但添加一个轶事;
或者,如果您想将 RGB 转换为十六进制,您可以执行以下操作:
I know this question is quite old but to add an anecdote;
alternatively, if you wanted to convert rgb to hex you could do a little something like: