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)