如何使用python实现将文件夹内的每张图片批量分割成多张

  介绍

这篇文章将为大家详细讲解有关如何使用python实现将文件夹内的每张图片批量分割成多张,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

<强>一,说在前面

,,,,需求:有一张长为960,宽为96的图片,需要将其分割成10张96 * 96的图片并存放在另外一个文件夹下,通过手工分割耗时且不规范,选择python写一个简单的程序完成。

<强>二、源码

#, - *安康;编码:utf-8  - * -   “““   Created 提醒Thu  Aug  23 18:19:09  2018   @author:管理员   “““   ,   import 操作系统   得到PIL  import 形象   ,   #,切割图片   rownum, def  splitimage (src, colnum,, dstpath):=,,img  Image.open (src)   ,w, h =img.size   ,if  rownum  & lt;=, h 以及colnum  & lt;=, w:   ,打印(& # 39;Original  image 信息:,% sx % s,, % s,, % & # 39;, %, (h, w,还以为,img.format, img.mode))   ,打印(& # 39;图片切割& # 39;)   ,=,,s  os.path.split (src)==,if  dstpath  & # 39; & # 39;:   dstpath 才能;s [0]=,=,s, fn  [1] .split(& # 39; # 39;公司)=,,basename  fn [0]=,,ext  fn [1]   ,   num =, 0=,,rowheight  h //rownum=,,colwidth  w //colnum   ,for  r 拷贝范围(rownum):   for 才能;c 拷贝范围(colnum):   box 才能=,(c  *, colwidth,, r  *, rowheight,,(时间+ c  1), *, colwidth,,(时间+ r  1), *, rowheight)   img.crop才能(箱).save (os.path.join (dstpath, basename  +, & # 39; _ # 39;, +, str (num), +, & # 39;强生# 39;,+,ext),, ext)   时间=num 才能;num  + 1   ,   ,打印(& # 39;共生成,% s 张小图片# 39;公司,%,num)   ,其他的:   ,打印(& # 39;错误# 39;)   ,   #,创建文件夹   def  mkdir(路径):   ,#去除首位空格=,,path  path.strip ()   ,#去除尾部,\,符号=,,path  path.rstrip (“\ \”)   ,   ,#判断路径是否存在   ,#存在,真的   ,#不存在,假的=,,isExists  os.path.exists(路径)   ,   ,#判断结果   ,if  not  isExists:   ,os.makedirs(路径)   ,print (路径+ & # 39;,创建成功& # 39;)   return 真正的   ,其他的:   ,print  (path  +, & # 39;,目录已存在& # 39;)   return 假   ,   ,   folder =, " # 39; C:/用户/管理员/桌面/testresults # 39;, #,存放图片的文件夹   时间=path  os.listdir(文件夹)   #,print(路径)   ,   for  each_bmp 拷贝路径:#,批量操作   ,first_name、second_name =, os.path.splitext (each_bmp)=,,each_bmp  os.path.join(文件夹,,each_bmp)=,src  each_bmp   ,打印(src)   ,打印(first_name)   ,#定义要创建的目录=,mkpath “C:/用户/管理员/桌面/结果/?,first_name   ,#调用函数   ,mkdir (mkpath)   ,if  os.path.isfile (src):   dstpath 才能=mkpath   if 才能;(dstpath ==, & # 39; & # 39;),或是os.path.exists (dstpath):   row 才能=,int(1), #,切割行数   col 才能=,int(10), #,切割列数   if 才能;row 祝辞,0,以及col 祝辞,0:   ,,splitimage (src,,行,,坳,,dstpath)   其他的才能:   ,才能打印(& # 39;无效的& # 39;)   其他的才能:   打印才能(& # 39;图片保存目录,% s 不存在! & # 39;,%,dstpath)   ,其他的:   打印才能(& # 39;图片文件,% s 不存在! & # 39;,%,src)

<强>三,写在后面

这里定义了切割行数和列数:

如何使用python实现将文件夹内的每张图片批量分割成多张“> </p> <p>如果需要将图片更改尺寸,可以简单的使用公益诉讼库中的调整()函数,代码如下:</p> <pre类=得到PIL  import 形象   ,   for 小姐:拷贝范围(1100):=,,img  Image.open (“C:/用户/管理员/桌面/test_results“+ str (i) +“.png")=,,img  img.convert (“L")=,,img  img.resize ((960、96))   ,   ,img.save (“C:/用户/管理员/桌面/test_results“+ str (i) +“.png",,“PNG")

关于“如何使用python实现将文件夹内的每张图片批量分割成多张”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看的到。

如何使用python实现将文件夹内的每张图片批量分割成多张