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

前言:

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.mzph.cn/news/719856.shtml

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

相关文章

论文阅读:基于超像素的图卷积语义分割(图结构数据)

#Superpixel-based Graph Convolutional Network for Semantic Segmentation github链接 引言 GNN模型根据节点特征周围的边来训练节点特征,并获得最终的节点嵌入。通过利用具有不同滤波核的二维卷积对来自附近节点的信息进行整合,给定超像素方法生成的…

MATLAB--pie函数绘制复杂分类饼图(2)--附案例代码

MATLAB–pie函数绘制复杂分类数据的饼状图 目录 MATLAB--pie函数绘制复杂分类数据的饼状图摘要1. 问题描述2. 具体步骤:3. 绘制结果4. 小结 摘要 在数据可视化中,饼状图是一种常用的展示分类数据的方式。之前,文章介绍了使用MATLAB绘制饼状图…

数据删除

目录 数据删除 删除员工编号为 7369 的员工信息 删除若干个数据 删除公司中工资最高的员工 Oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645 数据删除 删除数据就是指删除不再需要的数据 delete from 表名称 [where 删…

群晖Synology Drive服务搭建结合内网穿透实现云同步Obsidian笔记文件夹

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​💫个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-ebec69DBjtGk7apF {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…

后端传给前端的时间字段前端显示不正确

具体问题是什么呢,就比如我后段有一个字段是TimeStamp类型,从数据库中查出数据是下面的样式: 但是前端显示的是下面的格式: 这个的解决方法还是挺多的,那接下来具体来看看吧~ 第一种: 在application.prop…

Flink 面试题总结及答案

基础 state的分类 key state和operate state state 的重分布 Flink状态管理详解:Keyed State和Operator List State深度解析 - 掘金 checkpoint 和save point https://zhuanlan.zhihu.com/p/79526638 flink job 的容错策略 如果在没有持续消息输出的情况下&…

【短时交通流量预测】基于单层BP神经网络

课题名称:基于单层BP神经网络的短时交通流量预测 版本时间:2023-04-27 代码获取方式:QQ:491052175 或者 私聊博主获取 模型简介: 城市交通路网中交通路段上某时刻的交通流量与本路段前几个时段的交通流量有关&…

【CSP试题回顾】201312-3-最大的矩形

CSP-201312-3-最大的矩形 解题思路 1. 遍历所有可能的矩形高度: 通过遍历所有矩形高度来找到最大的矩形,即对每个可能的高度 it(从直方图中的最小高度到最大高度 heightMax),代码将尝试找到在这个高度或以上的最长连…

Linux操作系统——进程信号

1.信号的概念 生活当中哪些场景算信号呢?比如说你晚上调了个闹钟,然后第二天早上你听到了闹钟响了你就知道该起床了,这种机制就叫做信号机制。在生活中我们的信号是非常非常多的,比如说有:红绿灯,下课铃声…

爬虫案例一

首先我举一个案例比如豆瓣电影排行榜 (douban.com)这个电影,首先我们进去检查源代码 说明源代码有,说明是服务器渲染,可以直接那html 但是返回的结果是空,所以我们需要在头里面加上User-Agent 然后可以看到有返回的结果&#xff0…

Docker快速集成minio

拉取镜像(默认最新的) docker pull minio/minio创建配制和数据映射文件夹(用于将容器内的配置和数据映射到本地) 这边的路径可以修改成自己想要的文件夹 mkdir -p /data/minio/{config,data}启动容器 (这边启动容器要保证本地映…

什么是SpringCloud,有哪些组件?

spring Cloud 是基于spring boot的分布式系统开发工具,它提供了一系列开箱即用的,针对分布式系统开发的特性和组件。用于帮助开发人员快速构建和管理云原生应用程序。 Spring Cloud 的主要目标是解决分布式系统中的常见问题,例如服务发现,负载均衡,配置管理,断路器,消息总…

LabVIEW起重机工作参数远程监测系统

LabVIEW起重机工作参数远程监测系统 随着起重机技术的持续发展,对其工作参数的实时监控需求日益增加。设计了一个基于LabVIEW和TBox的起重机工作参数远程监测系统,能够实现起重机工作参数的实时采集、传输、解析和显示,有效提升起重机的性能…

python--开心篇--print--多种多样的print输出

文章目录 名言输出绕口令输出《水浒传》中的梁山好汉输出轨道交通充值信息输出对联字符画输出长春地铁1号线运行图模拟12306查询界面模拟企业网站登录界面 名言 print("& "*15) print("& &") print("& …

发现了一个超级好用的上网神器!但是不知道在哪里有卖······随身WiFi好评推荐,随身WiFi好用吗?

这两天到一个小地方出差, 走到一个奶茶店附近, 突然老板打电话说一个紧急文件需要我处理, 说实话有点崩溃, 前不着村后不着店的, 我去哪里找网络办公 辛亏奶茶店的小姐姐听到了, 让我在她店里&#x…

wy的leetcode刷题记录_Day81

wy的leetcode刷题记录_Day81 声明 本文章的所有题目信息都来源于leetcode 如有侵权请联系我删掉! 时间:2024-3-4 前言 目录 wy的leetcode刷题记录_Day81声明前言232. 用栈实现队列题目介绍思路代码收获 138. 随机链表的复制题目介绍思路代码收获 141. 环形链表题…

【Bugs】class path resource [xxx.xml] cannot be opened because it does not exist

报错: 关键报错信息: class path resource [scope.xml] cannot be opened because it does not exist完整报错信息: 2024-03-01 14:26:58 866 [main] DEBUG org.springframework.context.support.ClassPathXmlApplicationContext - Refres…

Ubuntu的apt、apt-get和apt-cache命令

原文:apt 和 apt-get 之间有什么区别? https://aws.amazon.com/cn/compare/the-difference-between-apt-and-apt-get/ 陈拓转载,2023/11/23,添加了举例。 apt 和 apt-get 之间有什么区别? apt 和 apt-get 都是命令行…

OpenAI划时代大模型——文本生成视频模型Sora作品欣赏(十五)

Sora介绍 Sora是一个能以文本描述生成视频的人工智能模型,由美国人工智能研究机构OpenAI开发。 Sora这一名称源于日文“空”(そら sora),即天空之意,以示其无限的创造潜力。其背后的技术是在OpenAI的文本到图像生成模…

【嵌入式移植】8、U-Boot源码分析5—启动过程分析start.S

U-Boot源码分析5—启动过程分析start.S 1、boot0.h2、reset2.1、vectors2.2、ELn2.2.1 EL32.2.2、EL2、EL1 2.3、SMPEN2.3、core errate2.4、lowlevel_init 前面从U-Boot编译的角度分析了其Makefile、链接脚本等,本章开始正式分析U-Boot启动过程 从上一篇文章7、U-…