公告:服务器迁移已顺利完成! 网址全面启用 https

服务器2号 服务器3号 服务器4号 服务器5号

申请VIP无广告,支付宝,微信,USDT!
在线客服请尝试以下不同链接如果进不了的话在线客服(1) (2) (3) (4) (5) (6)
(7) (8) (9) 实时开通

查看完整版本: 用命令行最高效批量处理图片

hetter 2012-10-8 10:44

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

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

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

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

这是我的第一个主题帖的处女帖,希望大家多多支持啊,[color=Blue]多给红心啊[/color],大家支持得多我会分享我自己许多的技巧。

乱爱 2012-10-8 11:46

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

gkiswtss 2012-10-10 09:16

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

jessica12 2012-10-10 14:58

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

goofoon 2012-10-10 15:28

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

liyuan8422 2012-10-10 16:01

*** 作者被禁止或删除 内容自动屏蔽 ***

间谍飞碟 2012-10-11 00:28

PS的批处理命令和动作能更好的完成这个工作,且像素准确度高非常多~
而且话说让美编人员弄懂命令行的作用我个人感觉不靠谱,他们连个循环逻辑都搞不清楚,别说参数了~
要不要这么多可视化工具干什么,作为程序每一个都能很清楚的理解命令行的作用。
而且你的批处理其实是需要工具,那么还是PS吧~

wxh5656 2012-10-11 11:11

*** 作者被禁止或删除 内容自动屏蔽 ***

staeling 2012-10-11 15:02

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

13941017926 2012-10-11 15:27

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

daiwei1989 2012-10-11 15:32

这个果然厉害,支持楼主,学到了很多东西。

hjm1983 2012-10-11 16:43

光影魔术手很好用啊,傻瓜式操作,没你说的这么麻烦吧,还可以保持名字不变

Fred_zs 2012-10-12 20:28

一般用户处理电脑里自己的图片时候,常见的第三方软件足够用了, 楼主的帖子提供了更广泛的思路

yangmanman 2012-10-12 21:32

不错,学习了,不过命令行还是有点复杂的,有个光影魔术手好象这些都能批量处理,图形界面还是方便的多的

小星空77 2012-10-12 23:43

呵呵,我是个菜鸟,看不懂,不过还是要感谢楼主!:excellence

间谍飞碟 2012-10-13 03:42

因为版主评分了,所以我就随便说一定吧~
PS之所以能成为世界上使用率最高的图像处理软件,怎么可能功能差~
它不单支持动作记录,批处理~
同时它支持脚本,是的没错它本身就支持COM的脚本而且不止一种,同时支持VB JS AS(MAC系统下,不是指actionscript)
所以它完美支持跨平台,不会想楼主介绍的一样只能在linux下使用
虽然我平时使用PS不多,但是之前有做过一些图片的大量处理,总的来说一般操作动作系统足够了。但是真的是专业的需要学习编程部分的复杂处理,我相信使用脚本觉得是最好的办法!

hetter 2012-10-13 07:55

回复 16楼 的帖子

兄台误会我的意思了,ImageMagick不是PS的替代品也不是PS的补充。而且兄台的观点我不太赞同,你说法拉利跑车与大众哪个使用率高?哪个好?况且我也没说PS差啊。
这套软件是开源的,开源是什么样的文化了解的人不多,去了解一个暴风影音的转码,格式工厂这些知名软件它们的底层是什么,还有许多Windows下的播放器它们的底层是什么。
这套软件,它非常出名,很久很久以前就出名了,只有在中国这样的欠发达国家IT水平相对落后的国家了解的人才少,要说夸平台还有比开源软件更跨平台的吗?怎么会只能在Linux下运行呢?不了解它只能说明根本不了解网站编辑或者说接触这行太晚。能熟练运用它就不可能还会再喜欢用图形的方式,没有用熟练运用的人是不可能了解这种感受的,正如京剧是我们国家国粹一样,90%的年轻人不会喜欢不代表它就不好,只能说还理解不了这种文化。命令的好处除了习惯它的人用得很爽这外,还有很重要的原因是它很强大很灵活比任何图片化的操作都要接近底层。打个比方,我假设你是在大型的公司,许多人都需要连到工作站计算机,就算工作站的能力再强,如果几十个人都要用图形的方式连接它,都要用到图形的软件方式去处理它,那无形中会额外消耗大多数的资源。而如果用命令的话,不需要图形的操作系统,不需要打开图形软件。如果是个人计算机在很低很低的配置下都可以高效完成任务。命令还有一些很重要的特点,它可以和Shell或者Windows里cmd的其它命令或者自己写脚本想结合,这样一来灵活度就相当大了。
打个比方吧,因为你这两天事情太多,最近制作的和拷进来的图片太多了,某批图片你忘记缩小了,只记得是最近2天的事,而且图片的命名毫无规则,而且把它们分别放在了许多不同的类型的目录里,甚至都没有规律乱放,而且许多目录下都可能有好几层目录。如果对它们进行操作非常耗费系统资源与时间,如果在上班时间,很有可能因为这样耽误别人使用机器,需要放到深夜12点进行,像这样的任务适合PS这样的软件吗?
所以,这样的事最适合用命令来完成,而且也是最节省资源的方法。比人去找要精确得多也节省相当相当多的时间。命令只是另外一种方法,就像铁锹与挖掘机的关系,虽然都能挖土,但许多人当然愿意选择前一个了,但它们的效率完全不一样。而且,后者不太可能不经过学习马上就会。我知道肯定有许多人不会习惯命令了,但也有许多人是很习惯于这种既高效又强大灵活的工作方式的,每个人的爱好、习惯、追求都不一样的,这只是另一种思路,我只是展现了大部分人还不知道的另一种方式而已,不能因为大多数人都开工厂完全定制生产好的汽车就不允许疯狂的DIY迷出现。

[[i] 本帖最后由 hetter 于 2012-10-13 07:58 编辑 [/i]]

zzrl 2012-10-13 10:52

非常实用的方法,比一些处理软件还要好用.
页: [1]
查看完整版本: 用命令行最高效批量处理图片