2012-10-21 8 views
-1

4 개의 값을 가진 목록을 통해 실행되는 for-loop를 만들려고합니다 : 16, 32, 64, 128.Python : for 루프에서 Image.resize하는 방법은 무엇입니까?

다음은 이미지 크기를 조정하는 데 필요한 4 가지 크기입니다.

이 내 전체 코드입니다 :

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

오류가 있습니까? 여러분은 크기 조정에서'int (size)'를 할 필요가 없으며'_imgFilename'과'_imgFileExtension'은 어디서 오는 것입니까? –

+0

Nop! ok int (size)를 제거합니다. hmm 여기를보십시오. http://paste.ubuntu.com/1294721/ – Voidcode

+0

파일 저장 위치를 ​​확인하기 위해 print 문을 추가하십시오. 방금 테스트 Png에서 quick_sizes 루프를 실행했고 효과가있었습니다. – DSM

답변

0

위의 코드는 작동 :

하지만 당신은 노틸러스는/그놈 오픈 첫 번째는, 다음 다시 열고 닫아야합니다 .. 다음 모든 이미지가 표시됩니다. 아니면 그냥 'ls'

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