linux的convert图片处理工具[转载]
来源:互联网 发布:2016年大数据薪资待遇 编辑:程序博客网 时间:2024/06/10 10:49
转载自这里(略有补充)
得到一个图片的尺寸,
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 1identify 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.pngadvpng -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常用命令或工具集
5. http://www.netingcn.com/category/imagemagick/page/2
- linux的convert图片处理工具[转载]
- Linux图片处理 -- ddjvu和convert命令
- Linux图片处理工具-GraphicsMagick
- 处理图片的工具类
- 处理图片的工具类
- 处理图片的工具类
- iOS开发者必备:六大图片、图标处理类工具(转载)
- linux 下命令行图片处理工具 ImageMagick
- Linux 图片转换命令 convert
- 转载的图片处理的各种方法
- linux convert图像处理命令
- linux convert图像处理命令
- android处理图片的函数(转载)
- 图形处理工具convert和display
- 使用Imagemagick convert进行图片处理
- Linux的文本处理工具
- ImageJ-一套强大的图片处理工具
- android 处理图片的工具类
- 解决浏览器出现“stack overflow at line:0”
- u盘无法格式化
- ecshop加广告出现广告位的宽度值必须在1到1024之间
- linux下删除文件夹命令
- linux下解压缩文件
- linux的convert图片处理工具[转载]
- ecshop2.7.3头部出现代码现象
- 解决#1289 - The \'InnoDB\' feature is disabled; you need MySQL built with \'InnoDB\' to have it working的问题
- 活动倒计时+fixed定位+跳转到本页指定位置
- php函数getenv(“REMOTE_ADDR”)得不到ip[转载]
- dede cms修改模板的时候页面显示标签代码
- php中包含js产生的中文乱码问题
- PHP中获取当前页面的URL【转】
- csdn积分