一,平均颜色的用途:

很多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得到图片的平均颜色(基本颜色/主色调)的更多相关文章

  1. ImageMagick:用identify检查图片是否完整?(jpg/gif/png图片是否损坏)

    一,常用图片格式的结束标志是什么? 1,Jpg格式的文件在16进制中的表示是以 ff d9 两个字节结尾 2,  gif格式的文件,结尾是 3b 3,  png格式的文件,结尾是  00 00 00 ...

  2. codeblocks修改字体颜色-背景颜色

    常用: 1. 编辑器背景-豆沙绿配置:色调85,饱和度123,亮度205: 2. 注释颜色-紫色:rgb(255,0,255): 参考: 改变codeblocks里面各种注释的颜色 常用颜色的RGB值 ...

  3. 框架、颜色、颜色名、脚本、字符实体、URL、速查列表

    一. 1.<iframe></iframe>标签设置内联框架(一个内联框架用来当前HTML文档嵌入另一个文档).[语法:<iframe src="URL&quo ...

  4. 2018-9-30-C#-winforms-输入颜色转换颜色名

    title author date CreateTime categories C# winforms 输入颜色转换颜色名 lindexi 2018-09-30 18:27:49 +0800 2018 ...

  5. echo -e "\033[字背景颜色;字体颜色m字符串\033[0m

    格式: echo -e "\033[字背景颜色;字体颜色m字符串\033[0m" 例如: echo -e "\033[41;36m something here \033 ...

  6. 转: ImageMagick 命令行的图片处理工具(客户端与服务器均可用)

    http://www.imagemagick.com.cn/ 关于ImageMagick ImageMagick (TM) 是一个免费的创建.编辑.合成图片的软件.它可以读取.转换.写入多种格式的图片 ...

  7. ImageMagick利用蒙版合成图片

    先看合成后的效果图. 需要的图片素材: 1.一张图片(335x600) 2.一张蒙版图片(335x600) 3.一张相框图片(335x600) 第一步,根据蒙板和图片,截取图片.而且所截取的图片之外的 ...

  8. jpg、png格式的图片转换成webp后颜色失真的问题

    今天简单的试用了一下 cweb.exe 将 jpg, png 格式的图片转换成 webp 格式. 我今天下载的是当前最新版:1.0.0 cwebp 3.jpg  -q 85 -o 3.webp 发现图 ...

  9. CentOS系统php5.6安装ImageMagick处理webp格式图片

    1.先安装webp yum install libwebp 2.编译安装ImageMagick 之前有过yum安装的先卸载 yum remove ImageMagick 我使用的是老版本ImageMa ...

随机推荐

  1. python之os模块使用

    python中os模块的常用语法 1.查看当前路径及路径下的目录 os.getcwd():返回当前路径(不包括文件名) os.listdir():返回当前路径下的所有目录列表. os.listdir( ...

  2. Centos 7 redis、tomcat、Spring Boot添加开机自启服务

    一.redis添加开机自启 1.添加服务配置文件 [root@test system]# vim /etc/systemd/system/redis-server.service 2.服务配置文件内容 ...

  3. Powershell编程基础-001-基本语法

    变量的定义:$a="abc"         变量的引用也是echo $a 注释: 1.单行注释:单行注释是在每行的开头键入井号#的注释. #符号右边的所有内容都将被忽略,也可以在 ...

  4. 趣图:当我修复一个隐藏Bug之后

    当我修复一个隐藏Bug时 然后,陷入了死循环中....   扩展阅读 趣图:大佬如何解决bug的 趣图:快下班了,剩一个bug,修复一下再走 趣图:当我给老板展示我修复了那个 bug 时 趣图:当同事 ...

  5. NIO 实现简单群聊功能

    服务端: package com.yang.runnable; import java.io.IOException; import java.net.InetSocketAddress; impor ...

  6. Python-列表推导式、生成器、字典推导式

    列表推导式 [] + for + if 算子.循环.条件, 对相同的数据进行处理, 算子也可以是函数 number = [i for i in range(1, 101) if i % 2 == 0] ...

  7. 02 Writing Your First Program 写你的第一个C程序

    Let's print "Hi" 打印输出"Hi" In your first computer program, let's print something ...

  8. Python 为什么不支持 switch 语句?

    本文出自"Python为什么"系列,请查看全部文章 在这篇文章里,我们会聊一聊为什么 Python 决定不支持 switch 语句. 为什么想要聊这个话题呢? 主要是因为 swit ...

  9. 如何在Windows7安装U盘中加入USB3.0驱动的支持

         安装前请务必备份好您硬盘中的重要数据. 一.在Windows7安装U盘中加入USB3.0驱动的支持 故障现象: 原生Win7系统不包含USB3.0的驱动,所以无法使用USB3.0的U盘在US ...

  10. Flink深入浅出: 资源管理(v1.11)

    -- 图片来自 <国家地理中文网>-- 往期推荐: Flink深入浅出:部署模式 Flink深入浅出:内存模型 Flink深入浅出:JDBC Source从理论到实战 Flink深入浅出: ...