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)


