實踐專案十一:Python批量圖片切割(PIL)
阿新 • • 發佈:2018-12-27
需求
將一張圖片均勻向右移動,向下移動,每移動一次,切割出一個固定面積的圖片。
思路
我們知道圖片實際上是有一個二維陣列組成的,所以先控制橫座標不變,縱座標擷取,一直到縱座標的邊界,然後向下移動橫座標,重複上一步操作。
同時在這裡我設定了三個不同的擷取大小。
程式碼實現
# -*- coding:utf-8 -*-
from PIL import Image
'''
@author:xunalove
修改檔案位置
修改圖片id
'''
def cut(id,vx,vy):
#開啟圖片圖片1.jpg
name1 = "/home/xuna/桌面/3/圖片" + id + ".jpg"
name2 = "/home/xuna/桌面/3/圖片"+ id +"_切塊_"
im =Image.open(name1)
#偏移量
dx = 40
dy = 40
n = 1
#左上角切割
x1 = 0
y1 = 0
x2 = vx
y2 = vy
#縱向
while x2 <= 320:
#橫向切
while y2 <= 480:
name3 = name2 + str(n) + ".jpg"
#print n,x1,y1,x2,y2
im2 = im.crop((y1, x1, y2, x2))
im2.save(name3)
y1 = y1 + dy
y2 = y1 + vy
n = n + 1
x1 = x1 + dx
x2 = x1 + vx
y1 = 0
y2 = vy
print "圖片切割成功,切割得到的子圖片數為"
return n-1
if __name__=="__main__":
#取圖片id的後兩位
id = "1"
#切割圖片的面積 vx,vy
#大
res = cut(id,160,160)
#中
#res = cut(id,120,120)
#小
#res = cut(id,80,80)
print res