怎么在python中使用PIL剪切图片
本篇文章为大家展示了怎么在python中使用PIL剪切图片,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
切图
1.首先先下载一张图片,我使用的是1200*1200像素的图片,将它放置在G盘的img目录下
2. 我将这张图片切成四等分,我新建了两个文件,分别是img1、img2,用来存放图片
3. 代码
fromPILimportImage img=Image.open('G:/img/1.jpg') print('图片的大小为:{}'.format(img.size)) print('将图片切分成等四份,4张600X600的图片') size=600#图片大小都为600,所以只设置一个变量 left=0#图片距离左边的宽度乘积值 shang=0#图片距离上边的宽度乘积值 index=0#图片名 foriinrange(4): ifi==2: #当循环到第三个值时,需要切第二行的图片 shang+=1 left=0 a=size*left#图片距离左边的大小 b=size*shang#图片距离上边的大小 c=size*(left+1)#图片距离左边的大小+图片自身宽度 d=size*(shang+1)#图片距离上边的大小+图片自身高度 print('a={},b={},c={},d={}'.format(a,b,c,d)) croping=img.crop((a,b,c,d)) croping.save('G:/img/img1/'+str(index)+'.jpg') index+=1 left+=1
看下运行结果:
看下文件,这样就将这张图片切分后存到img1这个目录中去了
点开目录看下,是我们要的效果
二、拼接
1.在切分后的图片基础上拼接,将图片存入img2这个文件夹中去
代码:
fromPILimportImage imgname=0 defpingjie(imgs): print('------------pingjie-------------') target=Image.new('RGB',(size*2,size*1))#拼接前需要写拼接完成后的图片大小1200*600 foriinrange(len(imgs)): a=size*i#图片距离左边的大小 b=0#图片距离上边的大小 c=size*(i+1)#图片距离左边的大小+图片自身宽度 d=size#图片距离上边的大小+图片自身高度 target.paste(imgs[i],(a,b,c,d)) globalimgname print('拼接图片的路径为:',path2+str(imgname)+'.jpg') target.save(path2+str(imgname)+'.jpg') imgname+=1 defpj(): print('------------pj-------------') #取1,3是因为每行拼接完整都是最后那个,第一行是0,1命名,第二行是2,3命名,所以取后面那个值 imglist=[1,3] img=[] foriinimglist: print('完整行的拼接路径为:'+path2+str(i)+'.jpg') img.append(Image.open(path2+str(i)+'.jpg')) target=Image.new('RGB',(size*2,size*2))#拼接前需要写拼接完成后的图片大小1200*1200 foriinrange(len(img)): a=0#图片距离左边的大小 b=size*i#图片距离上边的大小 c=size*2#图片距离左边的大小+图片自身宽度 d=size*(i+1)#图片距离上边的大小+图片自身高度 target.paste(img[i],(a,b,c,d)) globalimgname target.save(path2+'pingjie'+'.jpg') if__name__=='__main__': size=600#图片的宽高都为600像素 path='G:/img/img1/'#存放要拼接图片的目录 path2='G:/img/img2/'#拼接后图片的存放目录 index=0#图片的名字 foriinrange(2):#有两行,所以需要循环两次 images=[]#每一次拼接只能一行一行拼接,不能在第一行拼接完后再在其基础上拼接第二行的图片,矩阵不允许这样操作 forjinrange(2):#每行有两张图片,所以也要循环两次 print(path+str(index)+'.jpg') images.append(Image.open(path+str(index)+'.jpg')) index+=1 print('第{}行拼接完成'.format(i)) pingjie(images) pj()
看下打印结果:
看下目录:看到img2中存储了图片
进入该目录:可以看到拼接成功了
上述内容就是怎么在python中使用PIL剪切图片,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注恰卡编程网行业资讯频道。
推荐阅读
-
Python中怎么动态声明变量赋值
这篇文章将为大家详细讲解有关Python中怎么动态声明变量赋值,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文...
-
python中变量的存储原理是什么
-
Python中怎么引用传递变量赋值
这篇文章将为大家详细讲解有关Python中怎么引用传递变量赋值,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文...
-
python中怎么获取程序执行文件路径
python中怎么获取程序执行文件路径,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的...
-
Python中如何获取文件系统的使用率
Python中如何获取文件系统的使用率,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴...
-
Python中怎么获取文件的创建和修改时间
这篇文章将为大家详细讲解有关Python中怎么获取文件的创建和修改时间,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读...
-
python中怎么获取依赖包
今天就跟大家聊聊有关python中怎么获取依赖包,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据...
-
python怎么实现批量文件加密功能
-
python中怎么实现threading线程同步
小编给大家分享一下python中怎么实现threading线程同步,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!...
-
python下thread模块创建线程的方法
本篇内容介绍了“python下thread模块创建线程的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来...