一,ImageMagick的作用:

ImageMagick 是一个用来创建、编辑、合成图片的软件。

它可以读取、转换、写入多种格式的图片。

功能包括:图片切割、颜色替换、各种效果的应用,

图片的旋转、镜像、写入文字到图片等。

说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest

对应的源码可以访问这里获取: https://github.com/liuhongdi/

说明:作者:刘宏缔 邮箱: 371125307@qq.com

二,yum安装ImageMagick

1,yum安装ImageMagick

  1. [root@blog head]# yum install ImageMagick

说明:注意软件包名字中I和M均为大写

2,检查软件是否安装成功?

  1. [root@blog head]# whereis convert
  2. convert: /usr/bin/convert /usr/share/man/man1/convert.1.gz

三,查看当前安装的ImageMagick的版本和帮助

1,查看版本

  1. [root@blog head]# convert -version
  2. Version: ImageMagick 6.9.10-86 Q16 x86_64 2020-01-13 https://imagemagick.org
  3. Copyright: 1999-2020 ImageMagick Studio LLC
  4. License: https://imagemagick.org/script/license.php
  5. Features: Cipher DPC Modules OpenMP(4.5)
  6. 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,查看帮助

  1. [root@blog ~]# convert --help

3,查看手册

  1. [root@blog ~]# man ImageMagick

四,查看imagemagick支持的特性:

1,列出imagemagick支持的所有格式:

  1. [root@blog ~]# convert -list format

2,检查当前的imagemagick版本是否支持webp

  1. [root@blog conf.d]# convert -list format | grep -i webp
  2. WEBP* WEBP rw+ WebP Image Format (libwebp 1.0.0 [020E])

3,显示所有可用的字体:

  1. [root@blog ~]$ convert -list font

4,显示所有颜色通道类型

  1. [root@blog ~]$ convert -list channel

5,显示所有的颜色空间

  1. [root@blog ~]$ convert -list colorspace

6,显示所有的像素压缩类型

  1. [root@blog ~]$ convert -list compress

7,显示所有的颜色名

  1. [root@blog ~]$ convert -list color

8,显示所有的过滤器

  1. [root@blog ~]$ convert -list filter

五,一个最常用的例子,生成webp缩略图:

给图片生成webp缩略图,供网站使用:

1, 原大的图片如果太大,不能直接展示在网站页面上,

不但流费server的流量,而且用户打开时非常费时间,

所以要生成缩略图。

供web使用的缩略图用jpg和webp均可

我们生成两个缩略图,比较一下大小

2,从百度上下载一张壁纸,作为测试图使用

  1. [root@blog ~]# wget https://dss3.bdstatic.com/iPoZeXSm1A5BphGlnYG/skin/206.jpg

查看这张图片的大小

  1. [root@blog ~]# ll -h 206.jpg
  2. -rw-r--r-- 1 root root 297K May 19 2015 206.jpg

查看这张图片的宽高:

  1. [root@blog ~]# file 206.jpg
  2. 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的差别,但文件大小可以缩小更多

  1. [root@blog ~]# convert -resize 500x500 +profile '*' -quality 90 206.jpg 206tmb.jpg
  2.  
  3. [root@blog ~]# file 206tmb.jpg
  4. 206tmb.jpg: JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, baseline, precision 8, 500x313, frames 3
  5.  
  6. [root@blog ~]# ll -h 206tmb.jpg
  7. -rw-r--r-- 1 root root 26K Apr 28 18:34 206tmb.jpg

4,生成webp缩略图

  1. [root@blog ~]# convert -resize 500x500 +profile '*' -quality 90 206.jpg 206tmb.webp
  2.  
  3. [root@blog ~]# file 206tmb.webp
  4. 206tmb.webp: RIFF (little-endian) data, Web/P image, VP8 encoding, 500x313, Scaling: [none]x[none], YUV color, decoders should clamp
  5.  
  6. [root@blog ~]# ll -h 206tmb.webp
  7. -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版本:

  1. [root@blog ~]$ cat /etc/redhat-release
  2. CentOS Linux release 8.0.1905 (Core)

centos8上安装ImageMagick6.9.10并压缩图片生成webp缩略图的更多相关文章

  1. CentOS8上安装MySQL

    没有选择Win10上安装MySQL,个人感觉比较傻瓜式.同时相对Win10操作系统,个人更熟悉Unix/Linux操作系统,所以选择在CentOS8上安装MySQL数据库. 还是熟悉的yum安装,前提 ...

  2. VNware上安装虚拟机Ubuntu16.10 并安装petalinux(版本问题的坑 弃帖 另开一帖)

    1.下载Ubuntu镜像文件 最新版本:https://ubuntu.com/download/desktop 老版本:http://old-releases.ubuntu.com/releases/ ...

  3. 在CentOS8 上安装Python3

    从centos开始入手学习linux.感觉安装python很费劲,之前centos6因为python2和python3兼容的问题一直无法彻底解决,python3一旦安装影响到python2,cento ...

  4. 一网成擒全端涵盖,在不同架构(Intel x86/Apple m1 silicon)不同开发平台(Win10/Win11/Mac/Ubuntu)上安装配置Python3.10开发环境

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_200 时光荏苒,过隙白驹,即将进入2022年,著名敏捷开发语言Python也放出了3.10最终版,本次我们来展示一下在不同的系统和 ...

  5. 在Centos 5.4上安装Mysql5.5.10 (整理以前的工作文档)

    1.     安装环境 1.1.  目的 安装Mysql5.5.10服务,提供公司XXXX测试环境.正式环境也采用该版本的mysql 1.2. 硬件环境 PC机:IntelE5300 内存4G 硬盘5 ...

  6. 2019windows上安装Mac OS 10.14过程详细截图

    之前VMware12里面的Mac OS10.10升级后,键盘鼠标就用不了了.试了几次都这样,只能重装VMware14, 安装Mac OS 10.14系统.把步骤截下图,分享一下. 一.材料准备 1.虚 ...

  7. VNware上安装虚拟机Ubuntu16.10 并安装petalinux

    1.下载 VMware VMware-workstation-full-15.0.0-10134415.exe 自己寻找激活码 Ubuntu镜像 UG1144 PetaLinux Tools Docu ...

  8. 【转】如何在VMware上安装macOS Sierra 10.12

    本文主要介绍目前网络上比较流行的使用预安装镜像安装macOS 10.12的方法,并以9月20号发布的最新GM版本16A323为例. 安装方案 破解VMware 创建虚拟机,加载预安装镜像 初始化mac ...

  9. centos8上安装openresty

    一,openresty的官网地址: http://openresty.org/ 说明:说一下openresty的安装方式: 从openresty的安装目录下,可以看到openresty编译安装了自己作 ...

随机推荐

  1. python基本数据类型和循环、判断

    一.语言分为2种: 编译型语言:写完代码不能执行,得先编译 c.c++.c#,速度相对解释性语言更快,因为只需要执行一次解释型语言:不需要编译,直接执行 python.java.php.js.go.r ...

  2. H5C3综合案例

    案例:实现步骤 1. 搭建HTML结构 <section> <div></div> <div></div> <div></ ...

  3. zookeeper源码之服务端数据库管理中心

    负责管理ZooKeeper整个数据.主要管理树结构数据.session数据.持久化管理. 类图 ZKDatabase ZooKeeper数据管理门户类,底层通过DataTree来管理树结构,通过Fil ...

  4. Java基础一篇过(八)常见异常速查

    一.引言 开发过程中可能会遇到各种各样的异常,这里还是汇总一些比较典型的异常,有些比较直观的异常如空指针这种就不写了,此文可作为异常速查用. 二.异常大军正在来袭~ IllegalArgumentEx ...

  5. Group Convolution组卷积

    思路按照常规卷积到组卷积来. 常规卷积: 如果输入feature map尺寸为C∗H∗W C*H*WC∗H∗W,卷积核有N NN个,输出feature map与卷积核的数量相同也是N NN,每个卷积核 ...

  6. HAProxy安装配置

    概念 HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案. HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要 ...

  7. Vue学习笔记使用系列一【表单】

    脚手架的搭建,请查看另外一篇日记:https://www.cnblogs.com/Fengge518/p/11837078.html 1:直接代码了 1 <!DOCTYPE html> 2 ...

  8. MyBatis多对一,一对多,多对多,一对多关联查询

    一.Person实体类 1 public class Person { 2 private Integer personId; 3 private String name; 4 private Int ...

  9. k8s下的jenkins如何设置maven

    关于k8s环境的jenkins集群 k8s下搭建了jenkins集群后,执行任务时会新建pod,任务完成后pod被销毁,架构如下图所示: 在k8s搭建jenkins集群的步骤请参照<> 关 ...

  10. Spring系列之事务的控制 注解实现+xml实现+事务的隔离等级

    Spring系列之事务的控制 注解实现+xml实现 在前面我写过一篇关于事务的文章,大家可以先去看看那一篇再看这一篇,学习起来会更加得心应手 链接:https://blog.csdn.net/pjh8 ...