最近有一堆图片需要简单处理一下,每张图片需要人工选择出来一个矩形框,分成左右两部分,有点烦,把下面这句写入 gimp的 滤镜>>Python-fu>>控制台 中,每个文件选中后运行一下该语句就完成任务了。
-
import os
-
i=gimp.image_list()[-1];bdir=os.path.split(i.filename)[0];fn=bdir+'/'+os.path.basename(i.filename)[:-4];f1=fn+'_a.png';f2=fn+'_b.png';l=i.layers[0];pdb.gimp_edit_copy(l);newimage=pdb.gimp_edit_paste_as_new();drawable=newimage.layers[0];pdb.gimp_file_save(newimage, drawable, f1, f1);pdb.gimp_image_delete(newimage);pdb.gimp_selection_invert(i);l=i.layers[0];pdb.gimp_edit_copy(l);newimage=pdb.gimp_edit_paste_as_new();drawable=newimage.layers[0];pdb.gimp_file_save (newimage, drawable, f2, f2);pdb.gimp_image_delete(newimage)
因为是一次性的语句,所以我把它们放到了一句里。逐句解释一下:
-
# 语句在执行前要先选中左半部分
-
# 根据当前图片文件生成文件名
-
i=gimp.image_list()[-1]
-
bdir=os.path.split(i.filename)[0]
-
fn=bdir+'/'+os.path.basename(i.filename)[:-4]
-
f1=fn+'_a.png'
-
f2=fn+'_b.png'
-
# 拷贝选中的部分
-
l=i.layers[0]
-
pdb.gimp_edit_copy(l)
-
# 粘贴进新文件
-
newimage=pdb.gimp_edit_paste_as_new()
-
drawable=newimage.layers[0]
-
pdb.gimp_file_save(newimage, drawable, f1, f1)
-
pdb.gimp_image_delete(newimage)
-
# 反选后处理右半部分图片
-
pdb.gimp_selection_invert(i)
-
l=i.layers[0]
-
pdb.gimp_edit_copy(l)
-
newimage=pdb.gimp_edit_paste_as_new()
-
drawable=newimage.layers[0]
-
pdb.gimp_file_save (newimage, drawable, f2, f2)
-
pdb.gimp_image_delete(newimage)
阅读(3066) | 评论(0) | 转发(0) |