Bir dizindeki tüm resimleri toplu halde ölçekleme (yeniden boyutlandırma)
Açıklama: 'resimlerim'
klasöründeki tüm '.jpg'
,'.gif'
,'.png'
uzantılı resimleri en uzun boyutu 120px olacak şekilde ve ‘jpg’ formatında kaydeder ve eski resimleri siler.
Bağımlılık: #1 ve #2 kullanılarak yapılmıştır.
Girdi ve Çıktı: Yok
Önce: 'resimlerim'
klasöründeki'.jpg'
,'.gif'
,'.png'
uzantılı resimler bulunuyor.
Sonra:: 'resimlerim'
klasöründeki tüm orijinal '.jpg'
,'.gif'
,'.png'
uzantılı resimler silindi, tüm resimler için aynı orantıda fakat en uzun boyutu 120 px olacak şekilde küçük ‘jpg’ resimler yaratıldı.
English description: Batch processing of images in a directory to create thumbnails using Python.
Kaynak kod
""" 'resimlerim' klasorundeki tum '.jpg','.gif','.png' uzantili resimleri en uzun boyutu 120px olacak sekilde ve 'jpg' formatinda kaydeder ve eski resimleri siler. """ import Image import os # Buraya #5'teki resizeImage ve #13'teki listDirectory # fonksiyonlarini yerlestiriniz. def processImage(imageName): img = Image.open(imageName) # resmi acalim # en yuksen izin verilen en ve boy degerini girelim maxWidth = 120 maxHeight = 120 # yeni resmin uzantisi jpg olsun saveExt = '.jpg' # resmi boyutlandiralim if img.size[0] > maxWidth: img = resizeImage(img, 'width', maxWidth) if img.size[1] > maxHeight: img = resizeImage(img, 'height', maxHeight) # kaydedelim img.save(os.path.splitext(imageName)[0] + saveExt) # eger ustune kaydetmemissek (yani uzantisi degismisse), eskisini silelim if os.path.splitext(imageName)[1] != saveExt: os.remove(imageName) if __name__ == '__main__': directory = 'resimlerim' exts = ['.jpg','.gif','.png'] imageNames = listDirectory(directory, exts) for imageName in imageNames: processImage(imageName)