linux的convert图片处理工具

简介:

得到一个图片的尺寸,

identify test.png

结果为:

test.png PNG 178x15 178x15+0+0 16-bit PseudoClass 65536c 2.28kb

使用shell

identify test.png | cut -d ' ' -f 3 | cut -d 'x' -f 1

identify test.png | cut -d ' ' -f 3 | cut -d 'x' -f 2

分别得到宽和高

不过要是在java中通过runtime来运行这个命令是很麻烦的,它使用空格把参数分割出来的,它不会认为引号引起来的是一个参数,这个也有解决办法,这里就不说了。

所以,还是用identify test.png这个命令,得到的字符串用java的方式处理一下,也很简单。

1、压缩一个图片,限定高度为60, 宽高比例不变,但如果宽大于90,截取中间一段

convert source.jpg -resize x60 result_60.jpg

获取result_60.jpg的宽和高

if( 宽 > 90 ){

    convert result_60.jpg -gravity center -extent 90x60 result_60.jpg

}

这里要注意, -gravity和-extent配合使用在6.2.8的版本中是不正常的,可以选择用crop

计算 dx = (宽-90)/2

convert result_60.jpg -crop 90x60+${dx}+0 result_60.jpg

2、压缩一个图片,限定高和宽, 宽高比例不变,需要适当的裁减

例如:压缩为60x60, 这是一个特例,宽高正好相同,如果不同,计算会有所不同,但方法一样。

获取source.jpg的宽和高

if( 宽 > 高 ){

  convert source.jpg -resize x60 -gravity center -extent 60x60 result_60.jpg

}

else{

  convert source.jpg -resize 60x -gravity center -extent 60x60 result_60.jpg

}

3、截图

convert result_60.jpg -crop wxh+dx+dy result_60.jpg

w为要截取图片的宽

h为要截取图片的高

dx,dy是开始截取的偏移位置,以左上角为原点

4、拼图

横向拼接

convert 1.jpg 2.jpg 3.jpg +append result.jpg

纵向拼接

convert 1.jpg 2.jpg 3.jpg -append result.jpg

横向+纵向

convert /( 1.jpg 2.jpg 3.jpg +append /) /
/( 4.jpg 5.jpg 6.jpg +append /) /
/( 7.jpg 8.jpg 9.jpg +append /) /
-append result.jpg

5、256色png压缩
convert -strip -depth 8 -colors 256 soure.png result.png
advpng -z -4 result.png

6、图片上写字
convert source.jpg -font xxx.ttf -fill red -pointsize 48 -annotate +50+50 @text.txt result.jpg
使用字体xxx.ttf, 字体用红色填充,字体48pixel, 位置(50,50), 文字在text.txt文件中

7、图片上画长方形
convert source.jpg fill none -stroke red -strokewidth 3 -draw rectangle 50,50 100,100 result.jpg
还一个线宽为3,颜色为红色,从50,50到100,100的正方形,不填充
画线为 -draw line 50,50 100,100 
相关链接:

1. http://dikar.iteye.com/blog/1576056

2. http://www.linuxbyte.org/linux-convert-mini-howto.html

3. http://www.cnblogs.com/chenwenbiao/archive/2011/07/25/2116152.html

4. http://wiki.klniu.com/zh/Linux常用命令或工具集 (10)

本文转自博客园知识天地的博客,原文链接: linux的convert图片处理工具,如需转载请自行联系原博主。

相关文章
|
2月前
|
自然语言处理 数据库 iOS开发
DBeaver Ultimate Edtion 25.0 Multilingual (macOS, Linux, Windows) - 通用数据库工具
DBeaver Ultimate Edtion 25.0 Multilingual (macOS, Linux, Windows) - 通用数据库工具
136 12
DBeaver Ultimate Edtion 25.0 Multilingual (macOS, Linux, Windows) - 通用数据库工具
|
6月前
|
Linux 网络安全 数据安全/隐私保护
Linux 超级强大的十六进制 dump 工具:XXD 命令,我教你应该如何使用!
在 Linux 系统中,xxd 命令是一个强大的十六进制 dump 工具,可以将文件或数据以十六进制和 ASCII 字符形式显示,帮助用户深入了解和分析数据。本文详细介绍了 xxd 命令的基本用法、高级功能及实际应用案例,包括查看文件内容、指定输出格式、写入文件、数据比较、数据提取、数据转换和数据加密解密等。通过掌握这些技巧,用户可以更高效地处理各种数据问题。
643 8
|
1月前
|
运维 安全 Linux
试试Linux设备命令行运维工具——Wowkey
WowKey 是一款专为 Linux 设备设计的命令行运维工具,提供自动化、批量化、标准化的运维解决方案。它简单易用、高效集成且无依赖,仅需 WIS 指令剧本文件、APT 账号密码文件和 wowkey 命令即可操作。通过分离鉴权与执行过程,WowKey 让运维人员专注于决策,摆脱繁琐的交互与执行工作,大幅提升运维效率与质量。无论是健康检查、数据采集还是配置更新,WowKey 都能助您轻松应对大规模设备运维挑战。立即从官方资源了解更多信息:https://atsight.top/training。
|
1月前
|
数据采集 运维 安全
Linux设备命令行运维工具WowKey问答
WowKey 是一款用于 Linux 设备运维的工具,可通过命令行手动或自动执行指令剧本,实现批量、标准化操作,如健康检查、数据采集、配置更新等。它简单易用,只需编写 WIS 指令剧本和 APT 帐号密码表文件,学习成本极低。支持不同流派的 Linux 系统,如 RHEL、Debian、SUSE 等,只要使用通用 Shell 命令即可通吃Linux设备。
|
3月前
|
监控 安全 Ubuntu
Linux下如何安装配置Fail2ban防护工具
通过以上步骤,可以在Linux系统中成功安装和配置Fail2ban,从而有效保护服务器免受暴力破解等攻击。Fail2ban通过实时监控日志文件,自动更新防火墙规则,为系统安全提供了一层重要的保护。
415 36
|
7月前
|
监控 Unix Linux
Linux系统工具
Linux系统工具
94 6
|
4月前
|
Rust Ubuntu Java
[Linux工具] Makefile
Makefile是Linux环境下用于自动化编译和链接程序的配置文件,常用于简化大型项目的编译流程。通过定义目标文件、依赖文件及生成命令,Makefile能高效管理编译任务。它不仅适用于C语言项目,还可扩展到其他编程语言和非编程任务中。
77 20
[Linux工具] Makefile
|
3月前
|
Linux API
Linux下载工具wget与curl
`wget` 是一个用于从网络下载文件的命令行工具,支持HTTP、HTTPS和FTP协议。它能自动处理下载中断,并支持递归下载网站内容。基本用法:`wget URL`,可指定文件名(`-O`)、保存目录(`-P`),还支持断点续传(`-c`)、限速(`--limit-rate`)和递归下载(`-r`)。相比之下,`curl` 更侧重于发送各种HTTP请求(如GET、POST),并支持文件上传、自定义请求头和cookie等功能。
94 10
|
3月前
|
存储 Ubuntu 前端开发
Linux软件包管理工具概览
在Linux系统中,dpkg、apt、rpm、yum和dnf是几种常见的包管理工具,它们分别属于不同的Linux发行版或家族,并有着各自的诞生顺序和特点。下面将按照这些工具的诞生顺序,并结合Debian、Red Hat、CentOS、Ubuntu和Kali等系统,进行详细的介绍。
69 4
|
4月前
|
Linux 网络性能优化 网络安全
Linux(openwrt)下iptables+tc工具实现网络流量限速控制(QoS)
通过以上步骤,您可以在Linux(OpenWrt)系统中使用iptables和tc工具实现网络流量限速控制(QoS)。这种方法灵活且功能强大,可以帮助管理员有效管理网络带宽,确保关键业务的网络性能。希望本文能够为您提供有价值的参考。
476 28