centos8上安装ImageMagick6.9.10并压缩图片生成webp缩略图
一,ImageMagick的作用:
ImageMagick 是一个用来创建、编辑、合成图片的软件。
它可以读取、转换、写入多种格式的图片。
功能包括:图片切割、颜色替换、各种效果的应用,
图片的旋转、镜像、写入文字到图片等。
说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest
对应的源码可以访问这里获取: https://github.com/liuhongdi/
说明:作者:刘宏缔 邮箱: 371125307@qq.com
二,yum安装ImageMagick
1,yum安装ImageMagick
[root@blog head]# yum install ImageMagick
说明:注意软件包名字中I和M均为大写
2,检查软件是否安装成功?
[root@blog head]# whereis convert
convert: /usr/bin/convert /usr/share/man/man1/convert.1.gz
三,查看当前安装的ImageMagick的版本和帮助
1,查看版本
[root@blog head]# convert -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 ~]# convert --help
3,查看手册
[root@blog ~]# man ImageMagick
四,查看imagemagick支持的特性:
1,列出imagemagick支持的所有格式:
[root@blog ~]# convert -list format
2,检查当前的imagemagick版本是否支持webp
[root@blog conf.d]# convert -list format | grep -i webp
WEBP* WEBP rw+ WebP Image Format (libwebp 1.0.0 [020E])
3,显示所有可用的字体:
[root@blog ~]$ convert -list font
4,显示所有颜色通道类型
[root@blog ~]$ convert -list channel
5,显示所有的颜色空间
[root@blog ~]$ convert -list colorspace
6,显示所有的像素压缩类型
[root@blog ~]$ convert -list compress
7,显示所有的颜色名
[root@blog ~]$ convert -list color
8,显示所有的过滤器
[root@blog ~]$ convert -list filter
五,一个最常用的例子,生成webp缩略图:
给图片生成webp缩略图,供网站使用:
1, 原大的图片如果太大,不能直接展示在网站页面上,
不但流费server的流量,而且用户打开时非常费时间,
所以要生成缩略图。
供web使用的缩略图用jpg和webp均可
我们生成两个缩略图,比较一下大小
2,从百度上下载一张壁纸,作为测试图使用
[root@blog ~]# wget https://dss3.bdstatic.com/iPoZeXSm1A5BphGlnYG/skin/206.jpg
查看这张图片的大小
[root@blog ~]# ll -h 206.jpg
-rw-r--r-- 1 root root 297K May 19 2015 206.jpg
查看这张图片的宽高:
[root@blog ~]# file 206.jpg
206.jpg: JPEG image data, Exif standard: [TIFF image data, little-endian, direntries=0], baseline, precision 8, 1600x1000, frames 3
3,生成jpg缩略图
#-resize 宽x高(缩放,不变形),因为两个值都是500px,所以宽和高中数值大的会是500
#+profile '*' : 去掉元数据信息,缩略图不需要保存这些内容
#-quality 90 : 指定图片的品质,品质越高,占用的空间越大,最大值是100
# 一般从85-90肉眼看不出和100的差别,但文件大小可以缩小更多
[root@blog ~]# convert -resize 500x500 +profile '*' -quality 90 206.jpg 206tmb.jpg [root@blog ~]# file 206tmb.jpg
206tmb.jpg: JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, baseline, precision 8, 500x313, frames 3 [root@blog ~]# ll -h 206tmb.jpg
-rw-r--r-- 1 root root 26K Apr 28 18:34 206tmb.jpg
4,生成webp缩略图
[root@blog ~]# convert -resize 500x500 +profile '*' -quality 90 206.jpg 206tmb.webp [root@blog ~]# file 206tmb.webp
206tmb.webp: RIFF (little-endian) data, Web/P image, VP8 encoding, 500x313, Scaling: [none]x[none], YUV color, decoders should clamp [root@blog ~]# ll -h 206tmb.webp
-rw-r--r-- 1 root root 15K Apr 28 18:34 206tmb.webp
5,从浏览器查看效果
看截图:
jpg格式

webp格式

5,结论:webp的图片质量和jpg相比,肉眼看不出差别,
但文件缩小了40%左右,值得使用
六,imagemagick相关知识:
1,imagemagick的profile:记录图片一些描述信息。例如相机信息(光圈,相机型号)、photoshop元数据,颜色表等信息
说明:图片的描述信息有些情况下会数据量比较大,
包括: exif : 相机在拍照过程记录到照片中的光圈\厂商\型号\分辨率\拍摄时间等信息
iptc:IPTC元数据就是一种标准格式,它把元数据加入照片信息中,包括:作者,版权,字幕,细节描述等
photoshop metadata: photoshop写入到图片中的元数据,格式是xml
photoshop称之为XMP 元数据
七,查看centos版本:
[root@blog ~]$ cat /etc/redhat-release
CentOS Linux release 8.0.1905 (Core)
centos8上安装ImageMagick6.9.10并压缩图片生成webp缩略图的更多相关文章
- CentOS8上安装MySQL
没有选择Win10上安装MySQL,个人感觉比较傻瓜式.同时相对Win10操作系统,个人更熟悉Unix/Linux操作系统,所以选择在CentOS8上安装MySQL数据库. 还是熟悉的yum安装,前提 ...
- VNware上安装虚拟机Ubuntu16.10 并安装petalinux(版本问题的坑 弃帖 另开一帖)
1.下载Ubuntu镜像文件 最新版本:https://ubuntu.com/download/desktop 老版本:http://old-releases.ubuntu.com/releases/ ...
- 在CentOS8 上安装Python3
从centos开始入手学习linux.感觉安装python很费劲,之前centos6因为python2和python3兼容的问题一直无法彻底解决,python3一旦安装影响到python2,cento ...
- 一网成擒全端涵盖,在不同架构(Intel x86/Apple m1 silicon)不同开发平台(Win10/Win11/Mac/Ubuntu)上安装配置Python3.10开发环境
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_200 时光荏苒,过隙白驹,即将进入2022年,著名敏捷开发语言Python也放出了3.10最终版,本次我们来展示一下在不同的系统和 ...
- 在Centos 5.4上安装Mysql5.5.10 (整理以前的工作文档)
1. 安装环境 1.1. 目的 安装Mysql5.5.10服务,提供公司XXXX测试环境.正式环境也采用该版本的mysql 1.2. 硬件环境 PC机:IntelE5300 内存4G 硬盘5 ...
- 2019windows上安装Mac OS 10.14过程详细截图
之前VMware12里面的Mac OS10.10升级后,键盘鼠标就用不了了.试了几次都这样,只能重装VMware14, 安装Mac OS 10.14系统.把步骤截下图,分享一下. 一.材料准备 1.虚 ...
- VNware上安装虚拟机Ubuntu16.10 并安装petalinux
1.下载 VMware VMware-workstation-full-15.0.0-10134415.exe 自己寻找激活码 Ubuntu镜像 UG1144 PetaLinux Tools Docu ...
- 【转】如何在VMware上安装macOS Sierra 10.12
本文主要介绍目前网络上比较流行的使用预安装镜像安装macOS 10.12的方法,并以9月20号发布的最新GM版本16A323为例. 安装方案 破解VMware 创建虚拟机,加载预安装镜像 初始化mac ...
- centos8上安装openresty
一,openresty的官网地址: http://openresty.org/ 说明:说一下openresty的安装方式: 从openresty的安装目录下,可以看到openresty编译安装了自己作 ...
随机推荐
- Java 的各种内部类、Lambda表达式
内部类 内部类是指在一个外部类的内部再定义一个类.内部类的出现,再次打破了Java单继承的局限性. 内部类可以是静态 static 的,也可用 public,default,protected 和 p ...
- JAVA JDK 环境变量配置 入门详解 - 精简归纳
JAVA JDK 环境变量配置 入门详解 - 精简归纳 JERRY_Z. ~ 2020 / 9 / 13 转载请注明出处!️ 目录 JAVA JDK 环境变量配置 入门详解 - 精简归纳 一.为什么j ...
- C enum(枚举)
C enum(枚举) 枚举是 C 语言中的一种基本数据类型,它可以让数据更简洁,更易读. 枚举语法定义格式为: enum 枚举名 {枚举元素1,枚举元素2,……}; 接下来我们举个例子,比如:一星期有 ...
- [LeetCode]剑指 Offer 52. 两个链表的第一个公共节点
题解 nodeA走一个链表A(A独有+公共),再走B独有的长度, nodeB走一个链表B(B独有+公共),再走A独有的长度. 结果:两者相遇点即为交点:若没有交点,两者都走到null,会返回null. ...
- Anaconda是个什么东东?
2020/5/18 一.Anaconda 有什么用? 是一个安装.管理python相关包的软件,还自带python.Jupyter Notebook.Spyder,有管理包的conda工具,非常有用 ...
- 关于java基础知识的面试题(一)
1) Java中能否使用goto? 在C/C++中,goto常被用于跳出多重循环.但goto 语句的使用往往会使程序的可读性降低,所以 Java 不允许 goto 跳转.实际上,自从“goto有害论” ...
- 骚操作:不重启 JVM,如何替换掉已经加载的类?
Java对象行为 java.lang.instrument.Instrumentation 直接操作字节码 BTrace Arthas 三生万物 在遥远的希艾斯星球爪哇国塞沃城中,两名年轻的程序员正在 ...
- Linux等待队列(Wait Queue)
1. Linux等待队列概述 Linux内核的等待队列(Wait Queue)是重要的数据结构,与进程调度机制紧密相关联,可以用来同步对系统资源的访问.异步事件通知.跨进程通信等.在Linux中,等待 ...
- Java集合-07Map接口及其抽象类
简介 前面把List基本记录完了,对于集合List,Map,Set,因为Set基于Map,故先记录Map. 这一篇主要记录Map接口及其抽象类(java version:1.8) 整体架构 参考上图, ...
- 无所不能的Embedding 2. FastText词向量&文本分类
Fasttext是FaceBook开源的文本分类和词向量训练库.最初看其他教程看的我十分迷惑,咋的一会ngram是字符一会ngram又变成了单词,最后发现其实是两个模型,一个是文本分类模型[Ref2] ...