推荐榜 短消息 big5 繁体中文 找回方式 手机版 广 广告招商 主页 VIP 手机版 VIP 界面风格 ? 帮助 我的 搜索 申请VIP
客服
打印

[分享] 用命令行最高效批量处理图片

购买/设置 醒目高亮!点此感谢支持作者!本贴共获得感谢 X 14

用命令行最高效批量处理图片

首先,我这篇帖子是分享给所有人,尤其是像论坛的版主或者编辑,还有那些需要大批量有规律的处理图片的人。
声明一下:我经常的工作环境是Linux下,当然我给的技巧在Windows下也一样能用,我最常用的命令是Imagemagick里的命令,这个软件有多牛X,我不想多解释,自己搜索!经常处理的内容包括:批量把指定的图片按比例缩小,批量剪裁图片,批量加水印等等……
1.分享一下批量把图片缩小,这个技巧很适合网站的编辑,因为有许多图太大了,上传到论坛可能会加重访问的负担,比如一个7MB的图,分辨率至少也得是4000x3000以上吧,如果几十张这样的图就够服务器受得了,如果有几万人去浏览对于服务器来说那是多么重的负担?还有适合出去旅游拍的照片,如果不拿来PS的话,默认的图大小就有点大了,对话大多数人来说可能1980x1080就已经够好了,没必要搞个4000x3000那么大,打开占电脑资源不说,还占存储空间。好了,闲话说得有点多了,进入正题,需要用到ImageMagick里的convert命令,比如把当前目录下的所有后缀为jpg的图片按原有比例批量缩小一半:
复制内容到剪贴板
代码:
convert -resize 50% *.jpg
上面是最简单的办法,只是生成的图片的名字会点不爽,一般可以利用for循环来做,在Linux下是这样的(Windows下的for语法不一样):
复制内容到剪贴板
代码:
for i in *jpg;do convert -resize 50% $i small-$i;done
这样会在当前目录下生成已经缩小到一半的图片,跟原来的文件名基本上开始加上了small-前缀,这样就非常清爽了。这里分享给Linuxer一个小技巧,通常如果我不需要原图了,这里我会用rm命令来删除原有的图,然后用Perl版的rename命令来把所有的文件前面的small-前缀给去掉,这样每个文件又和原来的文件名一样了:
复制内容到剪贴板
代码:
rename 's/^small-//' *jpg
2.批量去取底部整条状水印
我以前喜欢下某站的套图,但每张图的最下方会有20个像素的黑条,黑条上有网站的地址,对于收藏爱好者来说相当于在图片上打个补丁一样。我就会批量的去除底部的水印,假如批量去除当前目录下所有图片最底下的水印:
复制内容到剪贴板
代码:
for i in *jpg;do convert -gravity South -chop 0x20 $i M$i;done
这种方法的灵活就在于不管图片是竖着的还是横向的都能砍掉指定的底部像素,生成的图片为原文件名前加个M

3.批量截取图片的某部分:
出于某些原因要批量指定相同的坐标去扣图,假如图片的外围被加了“框”,假如需要扣1024x768大小的图:
复制内容到剪贴板
代码:
for i in *jpg;convert -gravity Center -crop 1024x768+0+0 $i M$i;done
这样就会截取整张图最中间的1024x768,+与-是可以调整偏移的。

还有许多技巧,暂时介绍到我自己的技巧到这儿,关键是不知道我发的这些对于大家有没有用,下回有空再发帖,

这是我的第一个主题帖的处女帖,希望大家多多支持啊,多给红心啊,大家支持得多我会分享我自己许多的技巧。
本帖最近评分记录
  • allendong 金币 +20 高级技术贴…… 2012-10-8 12:11

点此感谢支持作者!本贴共获得感谢 X 14
TOP

只能说LZ的技术炉火纯青,也够耐心!
第二条批量去水印不错,经常要用素材的我也被这个弄得有点烦。

TOP

呵呵,楼主的技术比较高级,不过很多朋友的解决办法还会是 多尝试几款软件。给网站建设的朋友一个参考吧!

TOP

确实很实用啊,之前都是一张张做的,很费事

TOP

这个好复杂,一般人搞不来,还是用个图形化工具比较好

TOP

一般都是用最简单的处理器,楼主发的这个一大堆要看晕了~

TOP

PS的批处理命令和动作能更好的完成这个工作,且像素准确度高非常多~
而且话说让美编人员弄懂命令行的作用我个人感觉不靠谱,他们连个循环逻辑都搞不清楚,别说参数了~
要不要这么多可视化工具干什么,作为程序每一个都能很清楚的理解命令行的作用。
而且你的批处理其实是需要工具,那么还是PS吧~
本帖最近评分记录
  • 静夜 金币 +4 PS处理较细腻,,这些适合做一些简单,重复枯燥 ... 2012-10-11 09:29

TOP

这个比较好,可以批量,就是都是用命令来操作,大多人都不是很会,也看不懂。

TOP

楼主果然技术宅,一般人看不懂吧。

TOP

ACDSEE在批量处理上也可以,3.1版的启动速度也比较快占用资源也少

TOP



当前时区 GMT+8, 现在时间是 2025-6-19 00:00