gimp的python脚本

3030阅读 0评论2013-07-25 bailiangcn
分类:LINUX

最近有一堆图片需要简单处理一下,每张图片需要人工选择出来一个矩形框,分成左右两部分,有点烦,把下面这句写入 gimp的 滤镜>>Python-fu>>控制台 中,每个文件选中后运行一下该语句就完成任务了。

  1. import os
  2. 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)
因为是一次性的语句,所以我把它们放到了一句里。逐句解释一下:


  1. # 语句在执行前要先选中左半部分
  2. # 根据当前图片文件生成文件名
  3. i=gimp.image_list()[-1]
  4. bdir=os.path.split(i.filename)[0]
  5. fn=bdir+'/'+os.path.basename(i.filename)[:-4]
  6. f1=fn+'_a.png'
  7. f2=fn+'_b.png'
  8. # 拷贝选中的部分
  9. l=i.layers[0]
  10. pdb.gimp_edit_copy(l)
  11. # 粘贴进新文件
  12. newimage=pdb.gimp_edit_paste_as_new()
  13. drawable=newimage.layers[0]
  14. pdb.gimp_file_save(newimage, drawable, f1, f1)
  15. pdb.gimp_image_delete(newimage)
  16. # 反选后处理右半部分图片
  17. pdb.gimp_selection_invert(i)
  18. l=i.layers[0]
  19. pdb.gimp_edit_copy(l)
  20. newimage=pdb.gimp_edit_paste_as_new()
  21. drawable=newimage.layers[0]
  22. pdb.gimp_file_save (newimage, drawable, f2, f2)
  23. pdb.gimp_image_delete(newimage)




上一篇:使用mplayer下载mms流文件
下一篇:wps for linux的打印问题