Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1730395
  • 博文数量: 410
  • 博客积分: 9563
  • 博客等级: 中将
  • 技术积分: 4517
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-03 19:59
个人简介

文章分类

全部博文(410)

文章存档

2017年(6)

2016年(1)

2015年(3)

2014年(4)

2013年(32)

2012年(45)

2011年(179)

2010年(140)

分类: LINUX

2013-07-25 01:07:10

最近有一堆图片需要简单处理一下,每张图片需要人工选择出来一个矩形框,分成左右两部分,有点烦,把下面这句写入 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)




阅读(3066) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~