例如有一幅圖,文件名為“a.jpg'. 讀取: ``` from PIL import Image #或直接import Image im = Image.open('a.jpg') ``` 將圖片轉換成灰度圖 --------- : ``` im1 = im.convert('L') ``` 所以 打開圖片並轉換成灰度圖的方法是: --------------- ``` im = Image.open('a.jpg').convert('L) ``` 轉換圖像格式: ------- ``` im.save('aa.gif') ``` 以上代碼把a.jpg 打開並轉換成灰度圖(像素值在0-255之間),然后保存成aa.gif格式。可以把上一行代碼中‘aa.gif'改成路徑加文件名,就可以保存到自己想要保存的地方了。 批量轉換圖像格式: --------- 如果要大量處理圖像,例如有文件夾b,里邊保存許多圖片如aa.gif一類的,那么如下命令可以獲得: ``` import os a = os.listdir('b') ``` 列表a中會把圖片名無序存儲 a = [ 'aa.gif',[..],..],全是字符串。當然以上命令不僅可以用在這里,其它地方也是一樣的,獲得當前路徑b下邊所有的內容。 下面將創建一個包含文件夾中所有圖像文件名的文件名列表: ``` import os def get_path(path): '''返回目錄中所有JPG圖像的文件名列表''' return [os.path.join(path,f) for f in os.listdir(path) if f endswith('.jpg')] ``` 要做其它使用,只要在上述代碼稍做改動就可以。如去掉后邊的if 語句,則返回所有格式的文件名。如調用 ``` pth = get_path('b') ``` 則pth = ['b/aa.gif',[..],..]的內容,這就是path.join的作用。 然后將文件名列表pth中讀取所有文件,並換成JPEG格式: ``` from PIL import Image import os for img in pth: outfile = os.path.splitext(img)[0] + '.jpg' if img != outfile: try: Image.open(img).save(outfile) except IOError: print 'can not convert ',img ``` 原圖像不論是什么格式,除了后綴變為'jpg',上述代碼的新文件名和原文件名相同。