1. 程式人生 > >實踐專案十一:Python批量圖片切割(PIL)

實踐專案十一:Python批量圖片切割(PIL)

需求

將一張圖片均勻向右移動,向下移動,每移動一次,切割出一個固定面積的圖片。

思路

我們知道圖片實際上是有一個二維陣列組成的,所以先控制橫座標不變,縱座標擷取,一直到縱座標的邊界,然後向下移動橫座標,重複上一步操作。
同時在這裡我設定了三個不同的擷取大小。

程式碼實現

# -*- 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