convert 是 ImageMagick 工具包中的工具之一。

ImageMagick 提供了丰富的基于命令行的图片处理能力,非常适合制作批量图片处理工具,比如,生成缩略图、批量格式转换等等。

另外,针对常用的变成语言,ImageMagic 都拥有相应的接口库供使用。是各种图像处理开发中的优选方案。更多功能有待挖掘。

图片缩放(采样并插值)

这个是把图片批量进行 resize 的脚本。

#!/bin/sh
counter=
root=mypict
resolution=400x300
for i in `ls - $/*.jpg`; do
echo "Now working on $i"
convert -resize $resolution $i ${root}_${counter}.jpg
counter=`expr $counter + 1`
done

除了指定分辨率(会就近原则,保持原来画幅比例),还可以指定缩放倍数:

$convert image.png -resize %  -resize % -quality 100 resize.png

上面这条,先缩小为原来一半,然后放大一倍;虽然最后大小和原来一样,但是因为缩放过程中像素有丢失,画面明显模糊了。

使用 -quality 开关,可以控制 resize 的质量;可以不指定,但是,总觉得默认的 resize 图片质量不高。

图片抽样

与resize的区别在于-sample只进行了等概率抽样,没有进行插值。一般生成缩略图用这个方法:

$convert image.png -sample % sample.png  

图片切割

使用 convert 将图片切割成多张 40x40 的小图:

convert .png -crop 40x40 test5.png

从(0,20)位置开始,裁剪一张(320,200)的图出来:

convert -.png -crop 320x200++ test.png

从右下角(-10, -5)位置开始,裁剪一张 100x80 的图出来:

convert src.jpg -gravity southeast -crop 100x80++ dest.jpg

在原图中心截取一张 100x80 的图出来:

convert src.jpg -gravity center -crop 100x80++ dest.jpg

图片旋转

图片旋转实际用的场合最多可能是90度和180度。下面这句可以实现 45 度旋转:

$convert image.png -rotate  rotate.png 

按上面方式旋转后,是把旋转的图片放到了一张更大的图当中,大图空余部分,是用白色填充的。如果我们先用其它颜色填充:

$convert image.png -backround black -rotate  rotate.png
$convert image.png -background # -rotate rotate.png
$convert image.png -background rgba(,,,) -rotate rotate.png

合成图片

应用比较多的可能就是做水印了,暂时记录做水印的方法:

$convert image.png -gravity center -compose over overlay.png -composite newimage.png
$convert image.png -gravity southeast -compose over overlay.png -composite newimage.png

添加文字

恩,在图片上写一些字,别问我为什么需要:

$convert image.png -draw "text 0,20 'some text'" newimage.png

从文件里面读取,并指定大小、颜色、位置等:

$convert source.jpg -font xxx.ttf -fill red -pointsize  -annotate ++ @text.txt result.jpg

去掉图片边框

$convert image.png -trim -fuzz % newimage.png

改变背景色

使用convert来批量处理图片的更多相关文章

  1. 安装glue,用glue批量处理图片的步骤

     glue批量处理图片:http://glue.readthedocs.io/en/latest/quickstart.html#and-why-those-css-class-names 首先需要安 ...

  2. photoshop动作面板批量处理图片边框技巧

    1,想给图片加上边框,在不改变图片大小的前提下,可以这样做:ctrl+a,全选图片,然后“编辑”-----“描边”,在跳出来的选项卡里面可以设置边框颜色,大小,位置,及混合模式, ,我们设置好了,就可 ...

  3. PS如何批量处理图片

    喜爱摄影的朋友可能都有这样的体会,相机里面存了大量的图片,一般都是2048×1536或者更大像素的照片,每张都有1M以上,如果设置的清晰度高,则照片就更大,这样的图片是无法上传到博客中的(博客要求每张 ...

  4. Shell 命令行批量处理图片文件名

    Shell 命令行批量处理图片文件名 从网上下载了一堆图片,有的是*.jpg的,有的是*.jpeg的.并且文件名有长有短,很是糟心.因此,我想把这些文件给全部整理好,当然是用shell来处理啦! 说干 ...

  5. 使用IMAGEMAGICK的CONVERT工具批量转换图片格式

    使用IMAGEMAGICK的CONVERT工具批量转换图片格式 http://www.qiansw.com/linux-imagemagick-convert-img.html Home > 文 ...

  6. ps批量处理图片

    刚刚有朋友问,ps咋做批量动作呢,其实特别简单,基本一劳永逸,用尺寸做个例子,大家看看就知道了.

  7. Photoshop 批量处理图片

    不论什么你想反复进行的操作都能够通过创建 Photoshop 批处理程序来完毕.比如.你想批量改变图片的大小,就能够通过下面操作来实现. 1.打开随意一张图片,在动作面板中,点击新建button 2. ...

  8. convert图像格式批量转换

    问题:利用GMT绘制生成了eps格式的图像,为了将图像插入到word中,且保持较高的分辨率,利用convert进行图像格式转换,将eps转换成tiff格式. code:  $i ${name}.tif ...

  9. PS教程:如何批量处理图片

    1.我们先准备两个文件夹,一个用来装你要处理的图片,可以是几百上千张,另一个是空文件夹,用来装等下处理好的图片. 2.打开PS,打开未处理文件夹里的任何一张图片. 3. 在红圈中点击,新建一个动作. ...

随机推荐

  1. C语言 memset函数盲点

    #include <stdio.h> #include <stdlib.h> #include <string.h> struct packet { int len ...

  2. 清北学堂2017NOIP冬令营入学测试P4749 F’s problem(f)

    时间: 1000ms / 空间: 655360KiB / Java类名: Main 背景 冬令营入学测试 描述 这个故事是关于小F的,它有一个怎么样的故事呢. 小F是一个田径爱好者,这天它们城市里正在 ...

  3. java:POI导出excel

    POI是一个开源项目,专用于java平台上操作MS OFFICE,企业应用开发中可用它方便导出Excel. 下面是使用示例: 1.maven中先添加依赖项 <dependency> < ...

  4. 2016古装动作喜剧《笨贼别跑》HD720P.国语中字

    导演: 雷金克编剧: 郭卫鹏 / 李诗怡 / 马强主演: 彭波 / 李添诺 / 董向荣 / 韩丰 / 董怡君类型: 喜剧 / 动作 / 古装制片国家/地区: 中国大陆语言: 汉语普通话上映日期: 20 ...

  5. JavaScript中sort方法的一个坑(leetcode 179. Largest Number)

    在做 Largest Number 这道题之前,我对 sort 方法的用法是非常自信的.我很清楚不传比较因子的排序会根据元素字典序(字符串的UNICODE码位点)来排,如果要根据大小排序,需要传入一个 ...

  6. js中什么时候回考虑用call或者apply

    这里我说出自己的浅薄的理解,希望大家可以共鸣! call一些装逼的用法: call的用法通常在两个地方会用到, 1.需要加一个层的时候,也可以不准确的说继承的时候,继承是继承父类的属性或者方法,而ao ...

  7. [BZOJ1854][Scoi2010]游戏(二分图匹配/并查集)

    题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1854 分析:很裸的一道二分图匹配对吧,但是在hzwer的blog上看见神奇的并查集做法 ...

  8. RabbitMQ官方中文入门教程(PHP版) 第一部分:Hello World

    RabbitMQ是一个消息代理.它的核心原理非常简单:接收和发送消息.你可以把它想像成一个邮局:你把信件放入邮箱,邮递员就会把信件投递到你的收件人处.在这个比喻中,RabbitMQ是一个邮箱.邮局.邮 ...

  9. linux基础-第十七单元 Samba服务

    Samba的功能 Samba的安装 Samba服务的启动.停止.重启 Samba服务的配置 Samba服务的主配置文件 samba服务器配置实例 Samba客户端设置 windows客户端 Linux ...

  10. 个人阅读作业——M1/M2总结

    ~ http://www.cnblogs.com/wx1306/p/4831950.html 在这篇博客中,我提出来一些关于软件工程的问题,但随着这一个学期的即将结束,以及我对软件开发的了解的深入,我 ...