ImageMagick:用identify得到图片的平均颜色(基本颜色/主色调)
一,平均颜色的用途:
很多app在流式的展示图片时,
在图片没加载出来之前,
不是使用统一的背景图,
而是先显示一个纯色的背景,
而背景色和图片的颜色非常接近,
这样给用户的体验会更好。
我们这里演示的就是获取这个平均颜色值
说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest
对应的源码可以访问这里获取: https://github.com/liuhongdi/
说明:作者:刘宏缔 邮箱: 371125307@qq.com
二,查看identify的版本和帮助
1,查看版本
[root@blog im5]# identify -version
Version: ImageMagick 6.9.10-86 Q16 x86_64 2020-01-13 https://imagemagick.org
Copyright: 1999-2020 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC Modules OpenMP(4.5)
Delegates (built-in): bzlib cairo fftw fontconfig freetype gslib gvc jbig jng jp2 jpeg lcms ltdl lzma
openexr pangocairo png ps raqm raw rsvg tiff webp wmf x xml zlib
2,查看帮助
[root@blog im5]# identify -help
3,查看手册
[root@blog im5]# man identify
三,identify得到平均颜色值的例子:
使用identify得到图片的平均颜色值
[root@blog im5]# identify -verbose 5.jpg
Image: 5.jpg
...
Channel statistics:
Pixels: 465018
Red:
min: 0 (0)
max: 255 (1)
mean: 173.125 (0.678923)
standard deviation: 95.3528 (0.373932)
kurtosis: -0.995196
skewness: -0.895732
entropy: 0.858608
Green:
min: 0 (0)
max: 255 (1)
mean: 98.2824 (0.385421)
standard deviation: 56.5396 (0.221724)
kurtosis: 0.427876
skewness: 0.923531
entropy: 0.947875
Blue:
min: 0 (0)
max: 255 (1)
mean: 124.452 (0.488046)
standard deviation: 57.3031 (0.224718)
kurtosis: -0.463398
skewness: 0.318713
entropy: 0.967108
Image statistics:
Overall:
min: 0 (0)
max: 255 (1)
mean: 131.953 (0.517463)
standard deviation: 69.7318 (0.273458)
kurtosis: -1.27908
skewness: 0.143493
entropy: 0.92453
Rendering intent: Perceptual
...
Version: ImageMagick 6.9.10-86 Q16 x86_64 2020-01-13 https://imagemagick.org
说明:Channel statistics: 下面的
Red:的mean值
Green:的mean值
Blue:的mean值
就是我们需要的三个值
我们用shell把这个三个值取出来:
[root@blog im5]$ identify -verbose 5.jpg | grep mean | head -3 | awk '{match($0," ");print $2}' | awk '{printf("%.0f\n",$1)}'
173
98
124
三个值分别是r/g/b 三种颜色
也可以横向打印出来
[root@blog im5]$ identify -verbose 5.jpg | grep mean | head -3 | awk '{match($0," ");print $2}' | awk '{printf("%.0f,",$1)}' | head -c-1
173,98,124
四,identify的其他例子:
得到图片的宽高
[root@blog im5]$ identify -format %wx%h 5.jpg
799x582
-format可打印的变量:
%b file size
%c comment
%d directory
%e filename extension
%f filename
%h height
%i input filename
%k number of unique colors
%l label
%m magick
%n number of scenes
%o output filename
%p page number
%q quantum depth
%s scene number
%t top of filename
%u unique temporary filename
%w width
%x x resolution
%y y resolution
%# signature
\n newline
附:format的官方文档地址:
https://www.imagemagick.org/script/escape.php
五,使用缩放图片的方法得到图片的平均颜色值
#-resize: 调整文件大小,这里是把文件转为1个像素大小
#!:表示不管原图片比例,强制缩放后的图片大小是1×1
#format:指定输出的信息,这里的r/g/b是三原色的值
#info -: Specify 'file' as '-' for standard input or output.
#不指定文件而是使用-,用来指定标准输入或标准输出
[root@blog im5]$ convert 5.jpg -resize 1x1! -format "%[fx:int(255*r+.5)],%[fx:int(255*g+.5)],%[fx:int(255*b+.5)]" info:-
173,98,125
这个计算和identify得到的结果基本一致
六,取平均颜色值的效果展示
1,原图:

得到平均颜色值:
[root@blog im5]$ identify -verbose 5.jpg | grep mean | head -3 | awk '{match($0," ");print $2}' | awk '{printf("%.0f,",$1)}' | head -c-1
173,98,124
效果:

2,原图

得到平均颜色值:
[root@blog im4]$ identify -verbose blue.jpg | grep mean | head -3 | awk '{match($0," ");print $2}' | awk '{printf("%.0f,",$1)}' | head -c-1
55,128,225
效果:

3,原图:

得到平均色值:
[root@blog im5]$ identify -verbose 4.jpg | grep mean | head -3 | awk '{match($0," ");print $2}' | awk '{printf("%.0f,",$1)}' | head -c-1
26,75,22
效果:

ImageMagick:用identify得到图片的平均颜色(基本颜色/主色调)的更多相关文章
- ImageMagick:用identify检查图片是否完整?(jpg/gif/png图片是否损坏)
一,常用图片格式的结束标志是什么? 1,Jpg格式的文件在16进制中的表示是以 ff d9 两个字节结尾 2, gif格式的文件,结尾是 3b 3, png格式的文件,结尾是 00 00 00 ...
- codeblocks修改字体颜色-背景颜色
常用: 1. 编辑器背景-豆沙绿配置:色调85,饱和度123,亮度205: 2. 注释颜色-紫色:rgb(255,0,255): 参考: 改变codeblocks里面各种注释的颜色 常用颜色的RGB值 ...
- 框架、颜色、颜色名、脚本、字符实体、URL、速查列表
一. 1.<iframe></iframe>标签设置内联框架(一个内联框架用来当前HTML文档嵌入另一个文档).[语法:<iframe src="URL&quo ...
- 2018-9-30-C#-winforms-输入颜色转换颜色名
title author date CreateTime categories C# winforms 输入颜色转换颜色名 lindexi 2018-09-30 18:27:49 +0800 2018 ...
- echo -e "\033[字背景颜色;字体颜色m字符串\033[0m
格式: echo -e "\033[字背景颜色;字体颜色m字符串\033[0m" 例如: echo -e "\033[41;36m something here \033 ...
- 转: ImageMagick 命令行的图片处理工具(客户端与服务器均可用)
http://www.imagemagick.com.cn/ 关于ImageMagick ImageMagick (TM) 是一个免费的创建.编辑.合成图片的软件.它可以读取.转换.写入多种格式的图片 ...
- ImageMagick利用蒙版合成图片
先看合成后的效果图. 需要的图片素材: 1.一张图片(335x600) 2.一张蒙版图片(335x600) 3.一张相框图片(335x600) 第一步,根据蒙板和图片,截取图片.而且所截取的图片之外的 ...
- jpg、png格式的图片转换成webp后颜色失真的问题
今天简单的试用了一下 cweb.exe 将 jpg, png 格式的图片转换成 webp 格式. 我今天下载的是当前最新版:1.0.0 cwebp 3.jpg -q 85 -o 3.webp 发现图 ...
- CentOS系统php5.6安装ImageMagick处理webp格式图片
1.先安装webp yum install libwebp 2.编译安装ImageMagick 之前有过yum安装的先卸载 yum remove ImageMagick 我使用的是老版本ImageMa ...
随机推荐
- 如何入门Pytorch之四:搭建神经网络训练MNIST
上一节我们学习了Pytorch优化网络的基本方法,本节我们将以MNIST数据集为例,通过搭建一个完整的神经网络,来加深对Pytorch的理解. 一.数据集 MNIST是一个非常经典的数据集,下载链接: ...
- PHP开发规范1.3.3
PHP 开发规范1.3.3 一.编程规约 (一) 命名风格 [强制]代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式. 说明: 正确的英文拼写和语法可以让阅读者易于理解,避免歧义. ...
- 3.CDN加速简介
什么是CDN CDN的全称是Content Delivery Network,即内容分发网络.CDN的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问 ...
- Linux打包压缩解压工具
第1章 Linux 打包压缩解压工具一.压缩.解压工具 compress/uncompress gzip/gunzip bzip2/bunzip2/ bzcat xz/unxz/ xzcat ...
- 必考算法之 Top K 问题
大家好,这里是<齐姐聊算法>系列之 Top K 问题. Top K 问题是面试中非常常考的算法题. 8 Leetcode 上这两题大同小异,这里以第一题为例. 题意: 给一组词,统计出现频 ...
- Jmeter测试工具
jmeter的简单应用 目录 jmeter的简单应用 1.Jmeter 的基本概念 2.我们 为什么 使用 Jmeter 3.Jmeter的作用 4.Jmeter怎么用 5.安装JAVA环境 6.Jm ...
- Raspberry Pi 4B 安装 CentOS 8
最近新入手一块Raspberry Pi 4B 8G的板子,想在这块板子上搭建CentOS 8的环境.经过数次采坑终于安装成功. 准备条件: 1.Raspberry Pi 4B 板子 + SD卡 2. ...
- 【FLASK】钩子函数的使用
from flask import Flask from flask import abort app = Flask(__name__) # 在第一次请求之前调用,可以在此方法内部做一些初始化操作 ...
- Dubbo工作流程
一.dubbo整体架构 其中Service 和 Config 层为 API,对应服务提供方来说是使用ServiceConfig来代表一个要发布的服务配置对象,对应服务消费方来说ReferenceCon ...
- 学习OpenGL
重要!!! OpenGL新人一枚,希望可以再此和大家分享有用的知识,少走弯路 文章会定期更新,把前面几段已经整理过的知识更完后,接下来每周至少会更两次. 文章如果有不对的,理解错误的地方,也非常希望在 ...