2012-10-21 35 views
-1

我試圖做一個for循環,它是通過一個帶有4個值的列表運行的: 16, 32, 64, 128Python:如何在for循環中Image.resize?

這些是腳本需要調整圖像大小的四種尺寸。

這是我的全碼:

def on_btn_resize_clicked(self, widget): 
    if len(self.imgOriginal) > 0 and len(self.appRoot) > 0: #check if original-image and app-root is select 
     _imgFilename = os.path.splitext(basename(self.imgOriginal))[0] #get filename 
     _imgFileExtension = os.path.splitext(basename(self.imgOriginal))[1] # get filextension 

     quickly_sizes = [16, 32, 64, 128] #define all sizes, resize to 16x16, 32x32, 64x64, 128x128 
     for size in quickly_sizes: 
      print size 
      im=Image.open(self.imgOriginal) 
      im = im.convert("RGB") 
      im = im.resize((int(size), int(size)), Image.ANTIALIAS) 
      im.save(self.appRoot+"/data/media/"+_imgFilename+str(size)+_imgFileExtension) 

     widget.set_label("All four images is save!") 
     from subprocess import call 
     call(["nautilus", self.appRoot+"/data/media/"]) #open/show folder where all files is save 

循環運行,但它不保存圖像文件夾中。

我在做什麼錯?上述

+0

您是否收到任何錯誤?你不需要在調整大小和'_imgFilename'和'_imgFileExtension'從哪裏來做'int(size)'? –

+0

Nop!好吧,我刪除int(大小)..嗯試試看這裏:http://paste.ubuntu.com/1294721/ – Voidcode

+0

添加打印語句,以驗證它保存文件的位置。我只是在測試png上運行了你的quick_sizes循環,並且它工作正常。 – DSM

回答

0

代碼工作:)

但你需要關閉鸚鵡螺/ GNOME開先,然後再次打開它..然後所有的圖像顯示。或者只是'ls'

from subprocess import call 
call(["nautilus", self.appRoot+"/data/media/"])