2011-06-23 145 views
3

我有一個腳本創建一個圖像,它裁剪它。問題是,當我打電話作物()方法,它不保存在磁盤Python PIL:如何保存裁剪圖像?

crop = image.crop(x_offset, Y_offset, width, height).load() 
return crop.save(image_path, format) 
+2

會發生什麼情況?你有例外嗎?什麼是「image_path」和「format」? – codeape

回答

2

您需要的參數傳遞給.crop()一個元組。並且不要使用​​

box = (x_offset, Y_offset, width, height) 
crop = image.crop(box) 
return crop.save(image_path, format) 

這就是你所需要的。雖然,我不確定你爲什麼要返回保存操作的結果;它返回None

1

主要的麻煩是試圖使用由load()爲圖像對象返回的對象。從PIL文檔:

在[PIL] 1.1.6和更高版本中,加載返回可用於讀取和修改像素的像素訪問對象。訪問對象的行爲就像一個2維數組[...]

試試這個:

crop = image.crop((x_offset, Y_offset, width, height)) # note the tuple 
crop.load() # OK but not needed! 
return crop.save(image_path, format)