photomappe.de

Tonung von Bildern in Gimp mit Python

Mehrere Bilder (ein ganzes Verzeichnis) sollen mit einer Tonung (z.B. Sepia) versehen werden. Auch dieses Beispiel kann wieder direkt in der Python-Konsole von Gimp genutzt werden.

Die Grundlagen (also der Modulimport) ist identisch mit denen der Bildskalierung in Gimp. Die zu verarbeitenden Bilder liegen im temp-Verzeichnis des Users.

    import os
    import glob
    os.chdir(os.path.join(os.path.expanduser('~/'), 'temp'))
    files = glob.glob('*.jpg')
    

Die Liste der Dateien wird folgenden Aktionen unterzogen:

    for f in files:
        image = pdb.file_jpeg_load(os.path.join(srcpath, f), '')
        workimg = pdb.gimp_image_duplicate(image)
        pdb.gimp_context_set_foreground((0xa2, 0x8a, 0x65))
        color_layer = pdb.gimp_layer_new(workimg, nw, nh, RGB_IMAGE, 'color', 100.0, COLOR_MODE)
        pdb.gimp_image_add_layer(workimg, color_layer, -1)
        new_drawable = pdb.gimp_image_get_active_drawable(workimg)
        pdb.gimp_bucket_fill(new_drawable, FG_BUCKET_FILL, NORMAL_MODE, 100.0, 255.0, True, 0, 0)
        pdb.gimp_image_flatten(workimg)
        drawable = pdb.gimp_image_get_active_drawable(workimg)
        targetf = "sepia_" + f
        pdb.file_jpeg_save(workimg, drawable, targetf, targetf, 0.91, 0, 1, 0,\
        "created with gimp-python", 0, 1, 0, 1)
        pdb.gimp_image_delete(workimg)
        pdb.gimp_image_delete(image)

    

Alternative Methoden

Es gibt auch die Funktion pdb.plug_in_sample_colorize() Allerdings ist es mit damit nicht gelungen Bilder über Python-Fu mit einer Tonung zu versehen. Vielleicht hat da jemand einen Tipp?