Forum Wiki Galerie Kontakt Wie man Fragen richtig stellt. Tutorial Forum
Zurück   GIMP-Forum 3.0 > Arbeiten mit Gimp > GIMP-Ressourcen > Skripte

Hinweise
Alt 31.07.2016, 10:25   #13
PeterPKHG
Erfahrener Benutzer
 
Registriert seit: 20.07.2016
Beiträge: 403
Standard

So, die Stapelverarbeitung als Python-Plugin ist inzwischen fertig.
Stelle den Code demnächst hier hinein.

So einigermassen ...

Code:
#by PKHG, change as you like
#Python plug-in to insert in all pictures of some type in ONE directory new pictures
#in an destination (sub) directory with creation date in color at upper left corner
#maybe adjust first the default values suitable for you Environment (PC)
#have a look at
#http://www.gimpforum.de/showthread.php?p=156249
#result pictures are (normally) made smaller and saved as jpg's wit 85% jpg parameter

import glob
import time
import os
from gimpfu import *
import datetime


def todayS():
    """
    um die Biler im Zielordner einen guten prefix zu geben
    wird das heutige datum benutzt.
    """
    return  datetime.datetime.now().strftime("%B_%d_%Y_")


#Woerterbuch, um Englische Abkuerzungen von Monaten in eine Zahlen-String umzuwandeln
monat_zahl_dict = {'Jan':'01', 'Feb':'02', 'Mrt':'03', 'Apr':'04', 'May':'05', 'Jun':'06', 'Jul':'07', 'Aug':'08', 'Sep':'09', 'Oct':'10', 'Nov':'11', 'Dec':'12'}


def plakdatumopimage(image, datum, size, color):
    """
    gimp_text_fontname benutzt die Fordergrundfarbe, die hier gesetzt wird
    Parameter: image, datum, size und color 
    """
    pdb.gimp_context_set_foreground(color) #Fordergrund Farbe wird benutzt!
    text_layer = pdb.gimp_text_fontname(image, None, 5, 5, datum, 0, True, size, PIXELS, "Sans")
    return text_layer


def stapelBilderDatum(startordner, zielordner, bildertype, color ):
    """
    Alle Bilder aus Einem Startorder mit dem jeweiligen Erstellungsdatum versehen.
    Farbe ist zu waehlen.
    Bilder werden angedeutet mit z.B. *.jpg, oder genauer nur 4*.jpg oder
    nur mit 4 Zeichen vor der Extension, z.B. ????.bmp, usw.
    Zieleordner angeben!
    """
    #gimp.message("stapelBilderDatum 31 Juli 8:42 nur 2 Parameter?" + startordner ) #+ image.name)
    global monat_zahl_dict
    #mzd = monat_zahl_dict 
    filelist = glob.glob(startordner + "/" + bildertype)
    for i, el in enumerate(filelist):
        #el = el.replace("\\")
        #print el.rfind("/")
        getBildNamen = el.rfind("\\") #nun auch in Windows
        bildNameMitSlash = "\\" + todayS() + el[getBildNamen + 1 :]
        forext = el.rfind(".")
        if forext < 0 :
            gimp.message(el + " has no extension, cannot be handled")
            continue #dies el ist (noch) nicht erlaubt, naechste!
        extension = el[forext:].lower() # um JPG als jpg zu testen
        if not extension in [".jpg",".png",".tif"]:
            gimp.message(el + " has not extension .jpg or .png or .tif")
            continue  #das Bild (?) hat nicht erlaubte Extension, naechste!
        image = pdb.gimp_file_load(el,el)
        display = pdb.gimp_display_new(image)
        created = time.ctime(os.path.getmtime(el))
        print created
        wochentag, monat, datum, zeit, jaar = created.split(" ")
        kleb_ein = datum + '-' + monat_zahl_dict[monat] + '-' + jaar + ' ' + zeit
        sfactor = (1.0 * image.height) / image.width
        new_width = 640
        new_height = int(640*sfactor) 
        pdb.gimp_image_scale(image, new_width, new_height)
        plakdatumopimage(image, kleb_ein, 20, color)
        layer = pdb.gimp_image_flatten(image)
        filename = zielordner + bildNameMitSlash 
        pdb.file_jpeg_save(image, layer, filename, filename, 0.85, 0, 1, 0, "created with gimp-python", 3, 1, 0, 1)
        #pdb.file_jpeg_save(image, drawable, filename, raw_filename, quality, smoothing, optimize, progressive, comment, subsmp, baseline, restart, dct)

        pdb.gimp_display_delete(display)
        pdb.gimp_image_delete(image)

    
register(
    "stapelBilderDatum",
    "Bilder mit Erstellungsdatum versehen",
    "Datum oben links auf ein NEUES Bild kleben verkleinert als JPG mit 85%",
    "PKHG",
    "PKHG",
    "Juli 2016",
    "_BilderMitDatumKleiner...",
    "",
    [
        (PF_DIRNAME, "startordner" , " startdir" ,"c:/Users/Peter/Pictures/heute"),
        (PF_DIRNAME, "zielordner" , " zieldir" ,"c:/tmp"),
        (PF_STRING,  "bildertype", "welch(e) Bild(er), ? und * sind Joker!", "*.jpg"),
        (PF_COLOR,   "color",  " waehle eine Farbe fuer das Datum" , (0,255,0)),
    ],
    [],
    stapelBilderDatum,
    menu = "<Image>/PKHG/PythonFu"
)

main()

Geändert von PeterPKHG (31.07.2016 um 14:12 Uhr) Grund: code min of mehr fertig
PeterPKHG ist offline   Mit Zitat antworten
 

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Debuggen mit Python Shell IDLE für Python Fu? Gutschy Skripte 3 31.07.2016 14:30
Plugins in Python - und zwar richtig schumaml Plug-ins 23 24.07.2016 07:13
Python Fu und Script Fu ...?! PKHG Skripte 0 20.02.2009 15:19


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:05 Uhr.


Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.