使用convert来批量处理图片
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来批量处理图片的更多相关文章
- 安装glue,用glue批量处理图片的步骤
glue批量处理图片:http://glue.readthedocs.io/en/latest/quickstart.html#and-why-those-css-class-names 首先需要安 ...
- photoshop动作面板批量处理图片边框技巧
1,想给图片加上边框,在不改变图片大小的前提下,可以这样做:ctrl+a,全选图片,然后“编辑”-----“描边”,在跳出来的选项卡里面可以设置边框颜色,大小,位置,及混合模式, ,我们设置好了,就可 ...
- PS如何批量处理图片
喜爱摄影的朋友可能都有这样的体会,相机里面存了大量的图片,一般都是2048×1536或者更大像素的照片,每张都有1M以上,如果设置的清晰度高,则照片就更大,这样的图片是无法上传到博客中的(博客要求每张 ...
- Shell 命令行批量处理图片文件名
Shell 命令行批量处理图片文件名 从网上下载了一堆图片,有的是*.jpg的,有的是*.jpeg的.并且文件名有长有短,很是糟心.因此,我想把这些文件给全部整理好,当然是用shell来处理啦! 说干 ...
- 使用IMAGEMAGICK的CONVERT工具批量转换图片格式
使用IMAGEMAGICK的CONVERT工具批量转换图片格式 http://www.qiansw.com/linux-imagemagick-convert-img.html Home > 文 ...
- ps批量处理图片
刚刚有朋友问,ps咋做批量动作呢,其实特别简单,基本一劳永逸,用尺寸做个例子,大家看看就知道了.
- Photoshop 批量处理图片
不论什么你想反复进行的操作都能够通过创建 Photoshop 批处理程序来完毕.比如.你想批量改变图片的大小,就能够通过下面操作来实现. 1.打开随意一张图片,在动作面板中,点击新建button 2. ...
- convert图像格式批量转换
问题:利用GMT绘制生成了eps格式的图像,为了将图像插入到word中,且保持较高的分辨率,利用convert进行图像格式转换,将eps转换成tiff格式. code: $i ${name}.tif ...
- PS教程:如何批量处理图片
1.我们先准备两个文件夹,一个用来装你要处理的图片,可以是几百上千张,另一个是空文件夹,用来装等下处理好的图片. 2.打开PS,打开未处理文件夹里的任何一张图片. 3. 在红圈中点击,新建一个动作. ...
随机推荐
- QT QMianWindow类
QMianWindow是一个为用户提供主窗口程序的类,包含一个菜单栏(menu bar).及一个中心部件(central widget),是许多应用程序的基础,如文本编辑器等. QMainWindow ...
- Oracle字符分隔函数(split)
为了让 PL/SQL 函数返回数据的多个行,必须通过返回一个 REF CURSOR 或一个数据集合来完成.REF CURSOR 的这种情况局限于可以从查询中选择的数据,而整个集合在可以返回前,必须进行 ...
- 想请问下PDF双面打印时(打印机自动双面打印)为什么反面那页的内容是倒过来的,应该怎么设置?
用foxit reader 打印pdf 直接设置为双面打印并且一张2页打印,发现正反面刚好倒着来的,其实说的正反面倒着是从左右翻的角度来讲的,如果上下翻会发现刚好是这个顺序的,这个是要在双面打印设置里 ...
- 我理解的Hanlder--android消息传递机制
每一个学习Android的同学都会觉得Handler是一个神奇的东西,我也一样,开始我以为我懂了Handler的机制,后来发现自己是一知半解,昨天想想,我能否自己实现一个Handler,让子线程与Ac ...
- 读懂IL代码就这么简单 (一)
一前言 感谢 @冰麟轻武 指出文章的错误之处,现已更正 对于IL代码没了解之前总感觉很神奇,初一看完全不知所云,只听高手们说,了解IL代码你能更加清楚的知道你的代码是如何运行相互调用的,此言一出不明觉 ...
- HTTP 状态代码表示什么意思?
HTTP 状态代码表示什么意思? 如果某项请求发送到您的服务器要求显示您网站上的某个网页,服务器将会返回 HTTP 状态码响应请求.此状态代码提供关于请求状态的信息,一些常见的状态代码为: 200 - ...
- JavaScript中call,apply,bind方法的总结。
why?call,apply,bind干什么的?为什么要学这个? 一般用来指定this的环境,在没有学之前,通常会有这些问题. var a = { user:"追梦子", fn:f ...
- Android系统启动分析(Init->Zygote->SystemServer->Home activity)
整个Android系统的启动分为Linux Kernel的启动和Android系统的启动.Linux Kernel启动起来后,然后运行第一个用户程序,在Android中就是init程序. ------ ...
- closure!
总结一下闭包. 闭包的定义:当一个内部函数被其外部函数之外的变量所引用时,就形成了一个闭包. 一个最简单的闭包: function A(){ var count=0; return function( ...
- js实现倒计时效果
<!DOCTYPE html><head><meta http-equiv="Content-Type" content="text/htm ...