图像剪辑|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…

C++字典操作

创建字典 #include<iostream> #include<map> #include<string>using namespace std;int main(){map<string, int> mymap;}赋值 2.1 指定元素赋值 mymap["abc"] 1;2.2 添加键值对 mymap.insert(make_pair("bcd", 2));字典的顺序…

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

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

Linux使用bcache 将SSD加速硬盘

前言 在Linux下&#xff0c;使用SSD为HDD加速&#xff0c;目前较为成熟的方案有&#xff1a;flashcache&#xff0c;enhanceIO&#xff0c;dm-cache&#xff0c;bcache等&#xff0c;多方面比较以后最终选择了bcache。 bcache 是一个 Linux 内核块层超速缓存。它允许使用一个或…

Flink 面试题总结及答案

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

19.AUTOSAR MCAL分析(一):Microcontroller Driver

目录 1. MCAL概述 2. Microcontroller Drivers 2.1 MCU Drivers 2.2 GPT Driver 2.3 WatchDog Driver 2.4 CoreTest 3.小结 <

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

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

Android 自定义组件

在 Android 开发中&#xff0c;有时我们需要创建自定义的 UI 组件以满足特定的需求&#xff0c;这就是 Android 自定义组件的用途。在这篇博客中&#xff0c;我们将介绍如何创建和使用自定义组件&#xff0c;并以一个标题栏组件为例进行说明。 什么是自定义组件&#xff1f; …

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

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

软件测试相关介绍

什么是软件测试&#xff1f; 软件测试&#xff1a;使用技术手段验证软件是否满足使用需求 软件测试是指通过运行、评估和验证软件系统的过程&#xff0c;以确定其是否满足预期的需求和质量标准。它是软件开发生命周期中的一个重要环节&#xff0c;旨在发现和修复潜在的缺陷和…

前端错误 “TypeError Cannot read properties of undefined (reading ‘xxx‘)

前端错误 “TypeError: Cannot read properties of undefined (reading ‘xxx‘) 原因分析及解决 情况一&#xff1a; 出现该错误的原因是因为你花括号中的某些属性未定义。极大可能是因为你写错了属性名称 情况二&#xff1a; 异步请求获取数据时&#xff0c;语句可能写错&…

Linux操作系统——进程信号

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

Java中多线程的各种姿势

在Java中&#xff0c;多线程编程是一种强大的并发编程技术&#xff0c;可以让你同时执行多个任务。Java提供了多种方式来创建和管理线程。以下是Java中给多线程使用的一些主要方法&#xff1a; 继承Thread类&#xff1a; 创建一个新的类继承自Thread类。覆盖run()方法以定义线程…

爬虫案例一

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

Docker快速集成minio

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

什么是SpringCloud,有哪些组件?

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