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的方式处理一下,也很简单。

identify命令的具体用法和结果参数说明可参见官网

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)

5. http://www.netingcn.com/category/imagemagick/page/2

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值