一,平均颜色的用途:

很多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. 如何入门Pytorch之四:搭建神经网络训练MNIST

    上一节我们学习了Pytorch优化网络的基本方法,本节我们将以MNIST数据集为例,通过搭建一个完整的神经网络,来加深对Pytorch的理解. 一.数据集 MNIST是一个非常经典的数据集,下载链接: ...

  2. PHP开发规范1.3.3

    PHP 开发规范1.3.3 一.编程规约 (一) 命名风格 [强制]代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式. 说明: 正确的英文拼写和语法可以让阅读者易于理解,避免歧义. ...

  3. 3.CDN加速简介

    什么是CDN CDN的全称是Content Delivery Network,即内容分发网络.CDN的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问 ...

  4. Linux打包压缩解压工具

    第1章      Linux 打包压缩解压工具一.压缩.解压工具 compress/uncompress gzip/gunzip bzip2/bunzip2/ bzcat xz/unxz/ xzcat ...

  5. 必考算法之 Top K 问题

    大家好,这里是<齐姐聊算法>系列之 Top K 问题. Top K 问题是面试中非常常考的算法题. 8 Leetcode 上这两题大同小异,这里以第一题为例. 题意: 给一组词,统计出现频 ...

  6. Jmeter测试工具

    jmeter的简单应用 目录 jmeter的简单应用 1.Jmeter 的基本概念 2.我们 为什么 使用 Jmeter 3.Jmeter的作用 4.Jmeter怎么用 5.安装JAVA环境 6.Jm ...

  7. Raspberry Pi 4B 安装 CentOS 8

    最近新入手一块Raspberry Pi 4B 8G的板子,想在这块板子上搭建CentOS 8的环境.经过数次采坑终于安装成功. 准备条件: 1.Raspberry Pi 4B 板子 +  SD卡 2. ...

  8. 【FLASK】钩子函数的使用

    from flask import Flask from flask import abort app = Flask(__name__) # 在第一次请求之前调用,可以在此方法内部做一些初始化操作 ...

  9. Dubbo工作流程

    一.dubbo整体架构 其中Service 和 Config 层为 API,对应服务提供方来说是使用ServiceConfig来代表一个要发布的服务配置对象,对应服务消费方来说ReferenceCon ...

  10. 学习OpenGL

    重要!!! OpenGL新人一枚,希望可以再此和大家分享有用的知识,少走弯路 文章会定期更新,把前面几段已经整理过的知识更完后,接下来每周至少会更两次. 文章如果有不对的,理解错误的地方,也非常希望在 ...