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 ...
随机推荐
- python之ddt模块使用
一.DDT(数据驱动)简介 Data-Driven Tests(DDT)即数据驱动测试,可以实现不同数据运行同一个测试用例(通过数据的不同来驱动测试结果的不同). ddt本质其实就是装饰器,一组数据一 ...
- gcc之__attribute__简介及对齐参数介绍
GNU C的一大特色就是__attribute__机制.__attribute__机制可以设置函数属性(Function Attribute).变量属性(Variable Attribute)和类型属 ...
- vSphere Client上安装虚拟机工具VMware Tools
vSphere Client上安装虚拟机工具VMware Tools 1.安装虚拟机 具体安装步骤就不详述了,安装虚拟机之后右击虚拟机名->客户机->安装/升级VMware Tools,这 ...
- Infor EAM:注重行业属性,实现对轨道交通线性资产的可视化管理
Infor EAM:注重行业属性,实现对轨道交通线性资产的可视化管理 企业得利,一要开源,二要节流.而企业资产管理的目的,也正是从资产的角度出发,一方面通过相关资源与活动的合理安排提高设备可利用率.增 ...
- hystrix源码小贴士之调用异常处理
executeCommandAndObserve方法处理onerror异常. return execution.doOnNext(markEmits) .doOnCompleted(markOnCom ...
- 牛客在线习题:链表的k各节点翻转
题目描述 将给出的链表中的节点每\ k k 个一组翻转,返回翻转后的链表如果链表中的节点数不是\ k k 的倍数,将最后剩下的节点保持原样你不能更改节点中的值,只能更改节点本身.要求空间复杂度 \ O ...
- Linux系统编程 —读写锁rwlock
读写锁是另一种实现线程间同步的方式.与互斥量类似,但读写锁将操作分为读.写两种方式,可以多个线程同时占用读模式的读写锁,这样使得读写锁具有更高的并行性. 读写锁的特性为:写独占,读共享:写锁优先级高. ...
- 微信小程序 A~Z城市选择器js文件
微信小程序城市选择 [a~z] 的所有城市选择 city.js a~z排序的城市数据 addressChoose.js 其他js文件可引用 city.js /** * Created by yvded ...
- Pyinstaller打包通用流程
Pyinstaller打包通用流程 前言 什么是Pyinstaller Pyinstaller是用于打包python项目的一个工具, 可以将项目代码打包成可执行文件, 在其他机器上使用. 通俗的说, ...
- Java安全之Commons Collections1分析(一)
Java安全之Commons Collections1分析(一) 0x00 前言 在CC链中,其实具体执行过程还是比较复杂的.建议调试前先将一些前置知识的基础给看一遍. Java安全之Commons ...