【Life on Python】批量切割图片

按照 horizonvertic 两个变量切割当前目录下所有图片(包括子目录)。

代码很简单,就不封装了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import Image as img
import os

imgTypes = ['.png','.jpg','.bmp']

horizon = 8
vertic = 1

for root, dirs, files in os.walk('.'):
for currentFile in files:
crtFile = root + '\\' + currentFile
if crtFile[crtFile.rindex('.'):].lower() in imgTypes:
crtIm = img.open(crtFile)
crtW, crtH = crtIm.size
hStep = crtW // horizon
vStep = crtH // vertic
for i in range(vertic):
for j in range(horizon):
crtOutFileName = crtFile[:crtFile.rindex('.')] + \
'_' + str(i) + '_' + str(j)\
+ crtFile[crtFile.rindex('.'):].lower()
box = (j * hStep, i * vStep, (j + 1) * hStep, (i + 1) * vStep)
cropped = crtIm.crop(box)
cropped.save(crtOutFileName)
俗话说,投资效率是最好的投资。 如果您感觉我的文章质量不错,读后收获很大,预计能为您提高 10% 的工作效率,不妨小额捐助我一下,让我有动力继续写出更多好文章。