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?