图像剪辑|Linux|ImageMagick的初步使用--素描,毛玻璃等特效

news2024/12/26 14:25:53

前言:

ImageMagick在图像剪辑领域的地位基本等同于FFmpeg,和FFmpeg基本一样,在Linux下使用此工具的原因是该工具可以使用shell脚本批量剪辑,在Windows下就会比较麻烦一些了

那么,本文主要是记录一下ImageMagick的一些基本使用方式

此工具的安装见我的上一篇博客:

Linux|centos7|yum和编译安装ImageMagick记录-CSDN博客

ImageMagick由一组命令行工具组成,具体来说也就是 convert、mogrify、composite、montage、identify、compare、display、animate、stream、import 和 conjure,这 11 个命令。

其中最常用的,是 convert 和 mogrify

一,

图像文件格式转换

常见的图片格式有jpeg,jpg,png,bmp,webp这些,这个工具和FFmepg基本一样,也是以文件的后缀名来决定文件的编码格式,因此,图片慰文件的格式转换在这里是非常简单的

不过,需要注意的是,webp虽然是同等质量图片文件里最小的,但有些时候转换会由于未知原因失败,例如以下的示例,转换成webp格式的时候失败了,换了一种格式就成功了:

[root@centos7 ~]# convert   9a3e88091aa0253c4217bfe99aacba5.jpg  -charcoal 8  444.webp
convert: partition 0 overflow (> 512K) `444.webp' @ error/webp.c/WriteWEBPImage/1125.
[root@centos7 ~]# convert   9a3e88091aa0253c4217bfe99aacba5.jpg  -charcoal 8  444.jpeg

通常,如果对图片文件不做任何调整,只是文件格式转换,那么,命令如下:

convert 源文件名.源文件格式 新文件名.新文件格式

例如,我这个风景图片,格式是jpg的转换成bmp格式的:

[root@centos7 ~]# convert a9453488a2b714dbca4e2c1f9a8b8e9f.jpeg 111.bmp

 利用identify命令查看图片信息:

[root@centos7 ~]# identify a9453488a2b714dbca4e2c1f9a8b8e9f.jpeg 
a9453488a2b714dbca4e2c1f9a8b8e9f.jpeg JPEG 889x500 889x500+0+0 8-bit sRGB 75209B 0.000u 0:00.000
[root@centos7 ~]# identify 111.bmp 
111.bmp BMP 889x500 889x500+0+0 8-bit sRGB 1.27233MiB 0.000u 0:00.001

二、

图片压缩

[root@centos7 ~]# convert -monitor -quality 40 a9453488a2b714dbca4e2c1f9a8b8e9f.jpeg -fuzz 10% -layers Optimize 444.jpeg
load image[a9453488a2b714dbca4e2c1f9a8b8e9f.jpeg]: 499 of 500, 100% complete
Composite/Image[a9453488a2b714dbca4e2c1f9a8b8e9f.jpeg]: 499 of 500, 100% complete
crop image[a9453488a2b714dbca4e2c1f9a8b8e9f.jpeg]: 499 of 500, 100% complete
Composite/Image[a9453488a2b714dbca4e2c1f9a8b8e9f.jpeg]: 499 of 500, 100% complete
classify image colors[a9453488a2b714dbca4e2c1f9a8b8e9f.jpeg]: 499 of 500, 100% complete
reduce image colors[a9453488a2b714dbca4e2c1f9a8b8e9f.jpeg]: 6098 of 6099, 100% complete
dither image colors[a9453488a2b714dbca4e2c1f9a8b8e9f.jpeg]: 444499 of 444500, 100% complete
save image[444.jpeg]: 499 of 500, 100% complete
[root@centos7 ~]# id
id                    identify              idiag-socket-details  idn                   
[root@centos7 ~]# identify a9453488a2b714dbca4e2c1f9a8b8e9f.jpeg 
a9453488a2b714dbca4e2c1f9a8b8e9f.jpeg JPEG 889x500 889x500+0+0 8-bit sRGB 75209B 0.000u 0:00.000
[root@centos7 ~]# identify 444.jpeg 
444.jpeg JPEG 889x500 889x500+0+0 8-bit sRGB 41841B 0.000u 0:00.000

说明:-quality 40 缩减40的磁盘容量

-monitor 显示图片文件的处理过程

-fuzz 10% 色容差值

-layers Optimize 图层优化,如果有多个图层的话

可以看到,确实是压缩掉了一半容量,444.jpeg 才39k了嘛,原图75k

压缩前

压缩后

 三、

图片特效---碳化

主要是参数 -charcoal  后面跟纹理深度,从实践来说,一般1或者2就可以了,太深反而效果不好看

[root@centos7 ~]# convert -monitor a9453488a2b714dbca4e2c1f9a8b8e9f.jpeg -charcoal 1 -layers  Optimize 444.jpeg
load image[a9453488a2b714dbca4e2c1f9a8b8e9f.jpeg]: 499 of 500, 100% complete
Morphology/Image[a9453488a2b714dbca4e2c1f9a8b8e9f.jpeg]: 499 of 500, 100% complete
Clamp/Image[a9453488a2b714dbca4e2c1f9a8b8e9f.jpeg]: 499 of 500, 100% complete
Morphology/Image[a9453488a2b714dbca4e2c1f9a8b8e9f.jpeg]: 499 of 500, 100% complete
Morphology/Image[a9453488a2b714dbca4e2c1f9a8b8e9f.jpeg]: 499 of 500, 100% complete
contrast-stretch image[a9453488a2b714dbca4e2c1f9a8b8e9f.jpeg]: 499 of 500, 100% complete
negate image[a9453488a2b714dbca4e2c1f9a8b8e9f.jpeg]: 499 of 500, 100% complete
Grayscale/Image[a9453488a2b714dbca4e2c1f9a8b8e9f.jpeg]: 499 of 500, 100% complete
Composite/Image[a9453488a2b714dbca4e2c1f9a8b8e9f.jpeg]: 499 of 500, 100% complete
crop image[a9453488a2b714dbca4e2c1f9a8b8e9f.jpeg]: 499 of 500, 100% completelete
Composite/Image[a9453488a2b714dbca4e2c1f9a8b8e9f.jpeg]: 499 of 500, 100% complete
classify image colors[a9453488a2b714dbca4e2c1f9a8b8e9f.jpeg]: 499 of 500, 100% complete
dither image colors[a9453488a2b714dbca4e2c1f9a8b8e9f.jpeg]: 444499 of 444500, 100% complete
save image[444.jpeg]: 499 of 500, 100% complete
[root@centos7 ~]# identify a9453488a2b714dbca4e2c1f9a8b8e9f.jpeg 
a9453488a2b714dbca4e2c1f9a8b8e9f.jpeg JPEG 889x500 889x500+0+0 8-bit sRGB 75209B 0.000u 0:00.000
[root@centos7 ~]# identify 444.jpeg 
444.jpeg JPEG 889x500 889x500+0+0 8-bit Gray 256c 78679B 0.000u 0:00.000

 效果1:

效果10: 

 

效果3: 

 

四、

图片特效---模糊

[root@centos7 ~]# convert -monitor -blur 0x3  a9453488a2b714dbca4e2c1f9a8b8e9f.jpeg 444.jpeg
load image[a9453488a2b714dbca4e2c1f9a8b8e9f.jpeg]: 499 of 500, 100% complete
Morphology/Image[a9453488a2b714dbca4e2c1f9a8b8e9f.jpeg]: 499 of 500, 100% complete
Morphology/Image[a9453488a2b714dbca4e2c1f9a8b8e9f.jpeg]: 499 of 500, 100% complete
save image[444.jpeg]: 499 of 500, 100% complete
[root@centos7 ~]# identify a9453488a2b714dbca4e2c1f9a8b8e9f.jpeg 
a9453488a2b714dbca4e2c1f9a8b8e9f.jpeg JPEG 889x500 889x500+0+0 8-bit sRGB 75209B 0.000u 0:00.000
[root@centos7 ~]# identify 444.jpeg 
444.jpeg JPEG 889x500 889x500+0+0 8-bit sRGB 29842B 0.000u 0:00.000

 

[root@centos7 ~]# convert -monitor -blur 3x3  a9453488a2b714dbca4e2c1f9a8b8e9f.jpeg 444.jpeg
load image[a9453488a2b714dbca4e2c1f9a8b8e9f.jpeg]: 499 of 500, 100% complete
Morphology/Image[a9453488a2b714dbca4e2c1f9a8b8e9f.jpeg]: 499 of 500, 100% complete
Morphology/Image[a9453488a2b714dbca4e2c1f9a8b8e9f.jpeg]: 499 of 500, 100% complete
save image[444.jpeg]: 499 of 500, 100% complete

 

五、

图片上添加文字,使用默认的字体,

[root@centos7 ~]# convert -monitor -fill green -pointsize 40  -draw 'text 10,50 "fuck man"' a9453488a2b714dbca4e2c1f9a8b8e9f.jpeg 444.webp
load image[a9453488a2b714dbca4e2c1f9a8b8e9f.jpeg]: 499 of 500, 100% complete
save image[444.webp]: 499 of 500, 100% complete
encode image[444.webp]: 99 of 100, 100% complete

 

[root@centos7 ~]# convert -monitor -fill red -pointsize 100  -draw 'text 10,50 "fuck man"' a9453488a2b714dbca4e2c1f9a8b8e9f.jpeg 444.webp
load image[a9453488a2b714dbca4e2c1f9a8b8e9f.jpeg]: 499 of 500, 100% complete
save image[444.webp]: 499 of 500, 100% complete
encode image[444.webp]: 99 of 100, 100% complete

 

 

[root@centos7 ~]# convert -monitor -fill red -pointsize 100  -draw 'text 50,100 "fuck man"' a9453488a2b714dbca4e2c1f9a8b8e9f.jpeg 444.webp
load image[a9453488a2b714dbca4e2c1f9a8b8e9f.jpeg]: 499 of 500, 100% complete
save image[444.webp]: 499 of 500, 100% complete
encode image[444.webp]: 99 of 100, 100% complete

 

 

 

未完待续!@!!@@!!!!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【python】python用户管理系统[简易版](源码+报告)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…

VScode 单步断点调试Nodejs方法总结

目录 方法一 方法二 方法三 方法一 使用vscode开发nodejs程序,能够启动单步调试模式,在指定代码处添加断点,像chrome、firefox浏览器上一样进行JavaScript的调试。 新建一个nodejs的工程,编写代码后,配置代码调试的步骤: 1、切换到代码调试界面 2、界面提示,新建一…

rust多个mod文件引用和文件夹mod使用注意事项

如果mod文件都在同一级目录,则直接使用就可以,因为rust文件都是一个隐藏的mod,但是如果mod文件在另外一个目录下面,就需要在目录下面声明一个mod.rs文件,这样才能将那个目录识别为一个mod,可以在mod.rs里面…

数据结构学习(三)链表

链表 1. 概念 反转链表 给出3个指针,一个cur,用于遍历链表中的每个节点,一个prev,用于保存cur指向的节点的上一个节点地址,还有一个after,用于保存cur指向的节点的下一个节点地址,链表操作遵循…

linux 交叉编译curl(+openssl)

一、交叉编译openssl 参考博客:点击跳转 二、交叉编译curl 1、源码下载 地址:点击跳转 2、配置 CPPFLAGS"-I/home/gui/gui/openssl/build_arm/include" LDFLAGS"-L/home/gui/gui/openssl/build_arm/lib" LIBS"-ldl" \ …

webpack基础配置及使用

webpack是什么 是一个现代 JavaScript 应用程序的静态模块打包器。当webpack 处理应用程序时,它会递归地构建一个依赖关系图 ,其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个 bundle 。主要有 五个核心概念&#xff1a…

数据服务安全的重要性

数据服务安全在当今信息化社会显得尤为重要。随着大数据、云计算、人工智能等技术的飞速发展,数据已经成为企业和组织的核心资产,数据服务安全也面临着前所未有的挑战。本文将从数据服务安全的重要性、常见威胁、防护策略以及未来发展趋势等方面进行探讨…

【学位论文】上海交通大学 研究生学位论文 本地保存

上海交大研究生学位论文网:http://thesis.lib.sjtu.edu.cn/ (只能校内访问或SJTU VPN访问) 如果希望下载论文,需要参考:https://github.com/olixu/SJTU_Thesis_Crawler 安装过程 安装过程的几个坑: &a…

day04-Maven-SpringBootWeb入门

文章目录 01. Maven1.1 课程安排1.2 什么是Maven1.3 Maven的作用1.4 Maven模型1.5 Maven仓库1.6 Maven安装1.6.1 下载1.6.2 安装步骤 2 IDEA集成Maven2.1 配置Maven环境2.1.1 当前工程设置2.1.2 全局设置 2.2 创建Maven项目2.3 POM配置详解2.4 Maven坐标详解2.5 导入Maven项目 …

带使能控制的锂电池充放电解决方案

一、产品概述 TP4594R 是一款集成线性充电管理、同步升压转换、电池电量指示和多种保护功能的单芯片电源管理 SOC,为锂电池的充放电提供完整的单芯片电源解决方案。 TP4594R 内部集成了线性充电管理模块、同步升压放电管理模块、电量检测与 LED 指示模块、保护模块…

失败与坚持

失败 很多计划和目标由于个人能力等问题,都失败了。 如果将最近十年规划的目标算一个总评的话,接近97%的目标都没有实现。 这主要原因就是脱离了自身实际制定了一些超出自身能力所及的目标,当然也有一些客观因素。 坚持 有擅长做的事情&am…

Redis集群(主从)

1.主从集群 集群结构: 一.单机安装redis 1.上传压缩包并解压,编译 tar -xzf redis-6.2.4.tar.gz cd redis-6.2.4 make && make install 2.修改redis.config的配置并启动redis # 绑定地址,默认是127.0.0.1,会导致只能在本地访问。…

技术面没过,居然是因为没用过Pytest框架

01 概述 pytest是一个非常成熟的全功能的Python测试框架,主要特点有以下几点: 简单灵活,容易上手,文档丰富; 支持参数化,可以细粒度地控制要测试的测试用例; 能够支持简单的单元测试和复杂的…

什么是网络安全、信息安全、计算机安全,有何区别?

这三个概念都存在,一般人可能会混为一谈。 究竟它们之间是什么关系?并列?交叉? 可能从广义上来说它们都可以用来表示安全security这样一个笼统的概念。 但如果从狭义上理解,它们应该是有区别的,区别在哪呢&…

HFSS仿真双频微带天线学习笔记

HFSS仿真双频微带天线 文章目录 HFSS仿真双频微带天线1、 求解器设置2、 建模3、 激励方式设置4、 边界条件设置5、 扫频设置6、 设计检查,仿真分析7、 数据后处理 这里重点关注HFSS软件的操作,关于理论知识将在后面的文章中进行更新。 设计要求&#xf…

Golang pprof 分析程序的使用内存和执行时间

一、分析程序执行的内存情况 package mainimport ("os""runtime/pprof" )func main() {// ... 你的程序逻辑 ...// 将 HeapProfile 写入文件f, err : os.Create("heap.prof")if err ! nil {panic(err)}defer f.Close()pprof.WriteHeapProfile(f…

React 模态框的设计(四)状态管理

最近忙的不可开交,每天恨不得把时间掰开使用,挣不到钱还没时间,有时候我在想我怎么混得这个样子。题外话不多说,从这节课开始,我把这个模态框的教程写完整。请看效果: 这个模态框功能相对比较完整&#x…

桂院校园导航 静态项目 二次开发教程 2.0

Gitee代码仓库:桂院校园导航小程序 GitHub代码仓库:GLU-Campus-Guide 静态项目 2.0版本 升级日志 序号 板块 详情 1 首页 重做了首页,界面更加高效和美观 2 校园页 新增了 “校园指南” 功能,可以搜索和浏览校园生活指南…

聊聊国内「类Sora模型」发展现状,和 Sora 的差距到底有多大?

2024 年 2 月 16 日。 就在谷歌发布他新一代的多模态大模型 Gemini 1.5 Pro 的同一天,OpenAI 带着新一代的文生视频模型 Sora 再次抓住了全世界人们的眼球。 “颠覆”、“炸裂”、“变天”、“疯狂”,类似的形容词一夜之间簇拥在 Sora 周围,…

浅谈一个CTF中xss小案例

一、案例代码 二、解释 X-XSS-Protection: 0:关闭XSS防护 之后get传参,替换过滤为空,通过过滤保护输出到img src里面 三、正常去做无法通过 因为这道题出的不严谨所以反引号也是可以绕过的 正常考察我们的点不在这里,正常考察…