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

 

 

 

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

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

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

相关文章

简单聊聊http协议头参数之Content-Type和http状态码 415错误

大家好,我是G探险者。 今天聊一下http的状态码,415错误,因为项目里面使用了httpclient进行了远程服务调用,调用发送时,会有一个http header的参数设置。由于参数设置的问题经常会出现错误,导致调用失败&am…

基于51单片机微波炉简易控制仿真设计数码管显示proteus仿真+程序+设计报告+讲解视频)

基于51单片机微波炉简易控制仿真设计数码管显示 1. 主要功能:2. 讲解视频:3. 仿真4. 程序代码延时函数定时器初始化定时器中断产生PWM显示函数 5. 设计报告6. 设计资料内容清单&&下载链接资料下载链接: 基于51单片机微波炉简易控制仿…

xfce任务栏图标挤到一起了

分隔符,扩展,撑开任务栏

2024东南大学553复试真题及笔记

2023年真题知识点 引用指针 题目为 传递一个指针的引用做修改,输出指针指向的结果,但是指针被修改,结果就不一样了。 static 静态变量 类里面的静态成员变量,很简单的题目 for循环 看循环的内容输出字符串 try try catch捕…

Launch学习

参考博客: (1) 史上最全的launch的解析来啦,木有之一欧 1 ROS工作空间简介 2 元功能包 src目录下可以包含多个功能包,假设需要使用机器人导航模块,但是这个模块中包含着地图、定位、路径规划等不同的功能包,它们的逻…

Vue3和ElementPlus封装table组件

最近学习vue3.2并自己在写一个项目,然后发现好几个页面都是列表页,重复写table和column也是觉得累,学习的项目列表页不算多,要是公司项目就不一样了,所以就想着自己封装一个table组件,免去大量重复工作和co…

Acwing---1497. 树的遍历

树的遍历 1.题目2.基本思想3.代码实现 1.题目 一个二叉树,树中每个节点的权值互不相同。 现在给出它的后序遍历和中序遍历,请你输出它的层序遍历。 输入格式 第一行包含整数 N,表示二叉树的节点数。 第二行包含 N个整数,表示二…

Javase-类与对象

文章目录 一 . 面向过程的初步认知二 . 如何创建一个类三 . 如何创建一个对象四 . this引用五 . 构造方法六 . 初始化 一 . 面向过程的初步认知 Java是一门纯面向对象的语言(Object Oriented Program,简称OOP),在面向对象的世界里,一切皆为对…

使用Android Native Hook技术解决VLC播放器闪退的问题

文章目录 1.概述2.问题描述3.问题分析4.问题解决5.总结 1.概述 在做公司的一个TOB的需求时,发现调起Unity提供的3D播放器播放网络在线视频时闪退了,然后就拉着相关部门的人一起分析问题,最后定位到是VLC里面用到的系统日志打印函数在部分的系…

Flask入门二(Flask的CBV、模版语法、请求和响应、session执行流程分析、Flask闪现、请求拓展、g对象)

文章目录 一、Flask的CBV1.CBV的写法2.CBV的执行流程3.endpoint 的使用4.CBV中得methods作用5.CBV加装饰器 二、模版语法1.渲染变量2.变量的循环3.逻辑判断 三、请求和响应四、session执行流程分析1.基本使用2.执行流程3.Django中session的执行流程 五、Flask闪现1.作用2.案例3…

【Unity】Node.js安装与配置环境

引言 我们在使用unity开发的时候,有时候会使用一些辅助工具。 Node.js就是开发中,经常会遇到的一款软件。 1.下载Node.js 下载地址:https://nodejs.org/en 2.安装Node.js ①点击直接点击Next下一步 ②把协议勾上,继续点击…

【论文精读】I-JEPA

摘要 计算机视觉中,常采用基于不变性和基于生成的方法进行自监督学习。对比学习(CL)是典型的基于不变性的方法,通过预训练方法优化编码器,使其能生成同一图像的两个或多个视图的相似嵌入,其中图像视图通常由…

格两例12345

osu/Lucky Roll gaming 周末osu有道题:lcg已知低位 def lcg(s, a, b, p):return (a * s b) % pp getPrime(floor(72.7)) a randrange(0, p) b randrange(0, p) seed randrange(0, p) print(f"{p }") print(f"{a }") print(f"{b …

关于python函数参数传递

参数传递 在 python 中,类型属于对象,对象有不同类型的区分,变量是没有类型的: 在下面的代码示例重,[1,2,3] 是 List 类型,“qayrup” 是 String 类型,而变量 a 是没有类型,它仅仅…

java找工作之Mybatis(入门及xml配置相关)

Mybatis 学习Mybatis就要学会查看官网&#xff0c;官网地址如下&#xff1a;<MyBatis中文网 > 1、简介 1.1什么是Mybatis MyBatis 是一款优秀的持久层框架&#xff0c;它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取…

图形系统开发实战课程:进阶篇(上)——9.空间算法(一)

图形开发学院&#xff5c;GraphAnyWhere 课程名称&#xff1a;图形系统开发实战课程&#xff1a;进阶篇(上)课程章节&#xff1a;“图形样式”原文地址&#xff1a;https://www.graphanywhere.com/graph/advanced/2-9.html 第九章 空间算法&#xff08;一&#xff09; \quad 在…

计算机专业必看的十部电影

计算机专业必看的十部电影 1. 人工智能2. 黑客帝国3. 盗梦空间4. 社交网络5. Her6. 模仿游戏7. 斯诺登8. 头号玩家9. 暗网10. 网络迷踪 计算机专业必看的十部电影&#xff0c;就像一场精彩盛宴&#xff01; 《黑客帝国》让你穿越虚拟世界&#xff0c;感受高科技的魅力《模仿游戏…

小红关鸡(双指针)

链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 来源&#xff1a;牛客网 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 262144K&#xff0c;其他语言524288K Special Judge, 64bit IO Format: %lld 题目描述 有nnn个鸡窝排成一排&a…

#WEB前端(CCS常用属性,补充span、div)

1.实验&#xff1a; 复合元素、行内元素、块内元素、行内块元素 2.IDE&#xff1a;VSCODE 3.记录&#xff1a; span为行内元素&#xff1a;不可设置宽高&#xff0c;实际占用控件决定分布空间。 div为块内元素&#xff1a;占满整行&#xff0c;可以设置宽高 img为行内块元…

Windows 2012 设置 nginx 开机自启动(适用于windows2012/10)

Windows 2012 设置 nginx 开机自启动&#xff08;适用于windows2012/10&#xff09;https://www.cnblogs.com/xuegqcto/articles/7521483.html 在windows server 2012上安装nginx&#xff0c;同时配置开机自启动服务&#xff08;推荐使用“Windows Service Wrapper”工具&…