Linux Debian12安装和使用ImageMagick图像处理工具 常见图片png、jpg格式转webp格式

一、ImageMagick简介

ImageMagick是一套功能强大、稳定而且免费的工具集和开发包。可以用来读、写和图像格式转换,可以处理超过100种图像格式,包括流行的TIFF, JPEG, GIF, PNG, PDF以及PhotoCD等格式。对图片的操作,即可以通过命令行进行,也可以用C/C++、Perl、Java、PHP、Python或Ruby编程来完成。

二、ImageMagick安装

1.打开终端并执行以下命令,安装ImageMagick的依赖库。

sudo apt-get install build-essential 

sudo apt-get install libjpeg-dev libpng-dev libtiff-dev libgif-dev libwebp-dev 

sudo apt-get install webp

2.下载ImageMagick的源码包,可以在官网(https://imagemagick.org)上找到最新的稳定版本,也可以在github上下载。

官网下载:
https://www.imagemagick.org/download/ImageMagick.tar.gz

github下载:
https://github.com/ImageMagick/ImageMagick

在这里插入图片描述
在这里插入图片描述

假设下载的文件名为:ImageMagick-X.X.X.tar.gz,执行以下命令解压缩和安装:

tar xf ImageMagick-X.X.X.tar.gz
cd ImageMagick-X.X.X
./configure
sudo make install

3.安装完毕后,可以执行以下命令验证是否安装成功。

magick --version

如果出现下面错误:

magick: error while loading shared libraries: libMagickCore-7.Q16HDRI.so.10: cannot open shared object file: No such file or directory 

需要执行以下命令:

echo "/usr/local/lib" >>sudo  /etc/ld.so.conf
sudo ldconfig

在这里插入图片描述

再次验证是否安装成功:
magick --version

可以看到输出了ImageMagick版本信息,安装成功了。

在这里插入图片描述

三、ImageMagick使用

1.使用ImageMagick对单个图片png格式转为webp格式

magick test_01.png test_01_new.webp

可以看到同样画质的前提下,webp格式和png、jpg相比,文件格式小的多,除此之外,webp还支持动图。

在这里插入图片描述

2.通过shell编程,使用ImageMagick把图片png格式批量转为webp格式

for file_name in `ls *.png`;do magick $file_name `echo ${file_name//.png/_new.webp}`;done

在这里插入图片描述

3.通过shell编程,使用ImageMagick把图片png、jpg、jpeg、tiff格式批量转为webp格式

Shell脚本picToWebp.sh

#!/bin/bash
#功能:把常用的图片格式(png、jpg、jpeg、tiff)批量转换为webp格式

for file_name in `ls *.png *.jpg *.jpeg *.tiff`;do
	if [ png==${file_name##*.} ];then
		magick $file_name `echo ${file_name//.png/.webp}`
	fi

	if [ jpg==${file_name##*.} ];then
		magick $file_name `echo ${file_name//.jpg/.webp}`
	fi

	if [ jpeg==${file_name##*.} ];then
		magick $file_name `echo ${file_name//.jpeg/.webp}`
	fi

	if [ tiff==${file_name##*.} ];then
		magick $file_name `echo ${file_name//.tiff/.webp}`
	fi
done

通过下面命令,修改picToWebp.sh可执行

chmod 755 picToWebp.sh

在这里插入图片描述

通过下面命令,执行picToWebp.sh

./picToWebp.sh

在这里插入图片描述


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/277426.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

利用全面预算管理,构建企业数智化管理体系

财务团队对于一个企业的发展来说一直承担着巨大的压力,特别是当今的经济世态,财务管理被赋予比以往任何时候更高的期望。为了提高运营效率,降低管理成本,企业朝着数智化的方向逐渐靠拢。其中,全面预算管理的潜在价值是…

【C++】vector 基本使用(详解)

目录 一,vector 的介绍 二,vector 的定义 1,vector() 2,vector(size_type n, const value_type& val value_type()) 3,vector (const vector& x) 4,vector (InputIte…

IDEA 2022.2 安装教程

1.下载2020.3版本IDEA 链接:https://pan.baidu.com/s/1IFK8VRjT7vM2VM75ToveGQ?pwd176m 提取码:176m 2.安装 下载完成后,双击exe安装包,出现IDEA安装欢迎首页: 3.将 ja - netfiltet 文件复制到idea安装目录附件 …

Tailwind CSS 在Html中的使用

官网地址:Installation - Tailwind CSS 前言 记录从0到1在原生HTML中通过Tailwind CLI 使用Tailwind CSS Tailwind CLI 第一步,新建一个HTML文件夹 mkdir HTML 第二步,安装依赖tailwindcSS npm install -D tailwindcss 第三步&#xf…

SpringSercurity踩坑之request.getRequestURI()和request.getRequestURL()

今天在开发的时候遇到一个小小的问题,我在swagger测试权限的时候,直接跳过了放开的路径,直接进行了角色判断, .addFilterBefore(new TokenAuthenticationFilter(), UsernamePasswordAuthenticationFilter.class) 在这里if判断路径…

园林机械部件自动化三维测量检测形位公差-CASAIM自动化三维检测工作站

随着园林机械的广泛应用,对其机械部件的精确测量需求也日益增加。传统的测量方法不仅效率低下,而且精度难以保证,因此,自动化三维测量技术成为了解决这一问题的有效途径。本文将重点介绍CASAIM自动化三维检测工作站在园林机械部件…

mysql查询出json格式字段中的值

一、使用场景 由于一些特殊数据使用json格式保存到表数据种中了,在查询的时候需要查询出这条数据中json格式中的某个字段 比如:需要将下列字符串中的“nationality”字段单独查询出来 json格式是一个对象 结果: json格式是一个集合 查询结…

HarmonyOS云开发基础认证【题库答案】

HarmonyOS应用开发者基础认证【题库答案】 HarmonyOS应用开发者高级认证【题库答案】 一、判断题 应用架构的演进依次经历了微服务架构、单体架构、Serverless架构等阶段。(错)鸿蒙应用可以使用Arkts开发(对)认证服务在绑定微信账…

odoo17核心概念view5——ir_ui_view.py

这是view系列的第5篇文章,介绍一下view对应的后端文件ir_ui_view.py,它是base模块下的一个文件 位置:odoo\addons\base\models\ir_ui_view.py 该文件一共定义了三个模型 1.1 ir.ui.view.custom 查询数据库这个表是空的,从名字看…

spring security oauth2搭建认证服务器

如图(上面图片的代码在业务项目中),第一步在独立的业务项目中,先获取授权码(也叫jsessionId)、获取授权码的路径就是 /oauth2/authorize,这个路径是oauth2的框架中被OAuth2AuthorizationEndpoin…

『JavaScript』全面解析JavaScript中的防抖与节流技术及其应用场景

📣读完这篇文章里你能收获到 理解防抖(Debouncing)和节流(Throttling)的概念:了解这两种性能优化技术如何帮助我们更有效地处理频繁触发的事件掌握防抖与节流的实现方法:学习如何在JavaScript中…

【XR806开发板试用】XR806串口驱动CM32M对小厨宝的控制实验

一.说明 非常感谢基于安谋科技STAR-MC1的全志XR806 Wi-FiBLE开源鸿蒙开发板试用活动,并获得开发板试用。 XR806是全志科技旗下子公司广州芯之联研发设计的一款支持WiFi和BLE的高集成度无线MCU芯片,支持OpenHarmony minisystem和FreeRTOS,具有集成度高、…

岁末年终,收下谷歌开发者账号专属资料包

行至年末,感谢大家这一年对 "谷歌开发者" 的关注和支持,我们特在年终为大家梳理了资料包,帮助您做好整年知识点总结,精进开发技能,以更加从容的姿态迎接来年新光。 文章资料 我们一如既往地专注于为开发者们…

76 Python开发-内外网收集Socket子域名DNS

目录 Python开发相关知识点本篇文章涉及知识点演示案例:IP&Whois&系统指纹获取代码段-外网CDN&子域名&端口扫描&交互代码段-外网IP&计算机名&存活主机&端口扫描代码段-内网Py格式解析环境与可执行程序格式转换-Pyinstaller 涉及资源&#xff1…

L1-069:胎压监测

题目描述 小轿车中有一个系统随时监测四个车轮的胎压,如果四轮胎压不是很平衡,则可能对行车造成严重的影响。 让我们把四个车轮 —— 左前轮、右前轮、右后轮、左后轮 —— 顺次编号为 1、2、3、4。本题就请你编写一个监测程序,随时监测四轮的…

【Vue】事件修饰符详解

✨ 专栏介绍 在当今Web开发领域中,构建交互性强、可复用且易于维护的用户界面是至关重要的。而Vue.js作为一款现代化且流行的JavaScript框架,正是为了满足这些需求而诞生。它采用了MVVM架构模式,并通过数据驱动和组件化的方式,使…

SSL证书过期了怎么办

当SSL证书过期时,您需要尽快采取行动来确保您的网站继续提供安全的加密连接。以下是一些您可以采取的步骤: 更新证书: 尽快向您的SSL证书颁发机构申请并安装一个新的证书。如果您使用的是免费SSL证书(比如Lets Encrypt&#xff0…

css+js实现鼠标移动边框高亮效果

前言&#xff1a;效果是鼠标移入空白区域&#xff0c;边框高亮的效果。效果是在douyin的渡一教育袁老师的课程学习到的&#xff0c;观看以后是一个实用的小特效。想看的可以平台查询&#xff0c;自己也学到了知识。 <!DOCTYPE html> <html lang"en"> <…

[RoarCTF2019] TankGame

不多说&#xff0c;用dnspy反编译data文件夹中的Assembly-CSharp文件 使用分析器分析一下可疑的FlagText 发现其在WinGame中被调用&#xff0c;跟进WinGame函数 public static void WinGame(){if (!MapManager.winGame && (MapManager.nDestroyNum 4 || MapManager.n…