Skriptzugriff auf Bilderlisten

  • Ersteller Ersteller JKS
  • Erstellt am Erstellt am

JKS

FF-Team
Registriert
06.06.02
Beiträge
6.720
in V2.76 B38.

VT_BOOL FF_IListCreate(VT_BSTR listname) erzeugt eine virtuelle Liste.
VT_BOOL FF_IListDelete(VT_BSTR listname) löscht eine virtuelle Liste.
VT_I4 FF_IListGetCount(VT_BSTR listname) liefert die Anzahl Bilder in der Liste.
VT_BSTR FF_IListGetFile(VT_BSTR listname, VT_I4 index) liefert einen Bildnamen.
VT_BOOL FF_IListInsertFile(VT_BSTR listname, VT_BSTR filename, VT_I4 index) fügt ein Bild in die Liste ein (index == -1 : am Ende).
VT_BOOL FF_IListSave(VT_BSTR listname) speichert die Liste.

Dieses Script erzeugt aus allen selektierten Bildern eine Liste 'TestListe' die alle mit Blitz aufgenommenen Fotos enthält:
Code:
var liste="TestListe";
var   i,cnt,file;
FF_IListDelete(liste);
FF_IListCreate(liste);
cnt = FF_GetImageCount();
for(i=0; i<cnt; i++)
   {
   file = FF_GetImageName(i);
   if(!FF_LoadExif(file)) continue;
   if(parseInt(FF_GetExifTag("Flash")) & 1)
      FF_IListInsertFile(liste,file,-1);
   }
FF_IListSave(liste);
 
Hallo!

Wahnsinn, da tun sich ja unglaubliche Bildselektionsmöglichkeiten auf!

Gruß,

Ralf
 
Ja sehr gut!
Und vieleicht können wir demächst auch die nachbearbeiteten Bilder raussuchen lassen,
wenn denn mal die Bearbeitungshistory im Kommentar steht 8)
 
Noch ein Beispielskript.
Aus den selektierten Bildern werden Listen nach Blende angelegt (kumulativ).
Ein Aufruf ohne selektierte Bilder löscht alle Blendenlisten (Blende_x.x).

Code:
//FFSubmenu=Exif
//FFName=Blendenliste

var   MB_YESNO=4,IDYES=6
var   i,cnt=FF_GetImageCount();
var   file,bl,dir,dirs="";
if(0 == cnt)   // Blendenverzeichnisse löschen?
   {
   if(FF_MessageBox("Blendenlisten löschen?",MB_YESNO) == IDYES)
      {
      for(i=0; i<=30; i++)
         {
         for(cnt=0; cnt<=9; cnt++)
            {
            dir = "Blende_" + i + "." + cnt;
            if(FF_IListDelete(dir)) FF_IListSave(dir);
            }
         }
      }
   }
else
   {
   for(i=0; i<cnt; i++)
      {
      FF_SetProgress(i,cnt-1);
      file = FF_GetImageName(i);
      if(!FF_LoadExif(file)) continue;
      bl = FF_GetExifTagAdvanced("FNumber");
      if(bl =="") continue;
      dir = "Blende_" + bl;
      if(dirs.indexOf(dir) < 0)
         {
         FF_IListCreate(dir);
         if(dirs != "") dirs += ",";
         dirs += dir;
         }
      FF_IListInsertFile(dir,file,-1);
      }
   dir = dirs.split(",");
   for(i=0; i<dir.length; i++) FF_IListSave(dir[i]);
   }
 
Hallo JK,

ich weiß, ich bin wieder unverschämt ;D :

Bitte um folgende Erweiterungen:
VT_BOOL FF_IListDeleteFile(VT_BSTR listname, VT_BSTR filename)
VT_BOOL FF_IListDeleteIndex(VT_BSTR listname, VT_I4 index)

sowie die grafische Umsetzung in den Script-Dialogen
Beispiel:

FF_AddControl sDlg, lstname, "ILIST", x, y, b, h

Mit FF_SetControl und FF_GetControl kann man Listen austauschen bzw. den Namen entnehmen. Steuerung der Liste würde über die Bilderlisten-Routinen erfolgen. Bei Auswahl und bei Doppelklick müsste der Dialog verlassen werden, um Änderungen im Dialog herbeizuführen.

Schönen Gruß,

Werner.
 
Kann man eigentlich schon virtuelle Bilderlisten erstellen, d. h. ohne Kopieren von Bildern in Verzeichnissen. Bin vielleicht nicht auf dem aktuellen Stand der Dinge.

Schönen Gruß,

Werner.
 
W. schrieb:
Kann man eigentlich schon virtuelle Bilderlisten erstellen, d. h. ohne Kopieren von Bildern in Verzeichnissen.
Klar, der wesentliche Teil der Bilderlisten. Sogar schon in der Anleitung enthalten ;D
 
W. schrieb:
VT_BOOL FF_IListDeleteFile(VT_BSTR listname, VT_BSTR filename)
VT_BOOL FF_IListDeleteIndex(VT_BSTR listname, VT_I4 index)

in V2.76 B40.

Irgendeine Kleinigkeit habe ich, glaub' ich, noch vergessen... ::)
 
Hallo Joachim,

da ich die Funktionalität gerade etwas erforscht habe, wäre folgende Funktion noch von Nutzen.

VT_BOOL FF_IListSort(VT_BSTR listname, VT_I4Sort)
VT_BSTR FF_IGetLists() Listen separiert mit CRLF

Ob man die ausführbaren Funktionen wie eMail, Diashow, CD-Brennen etc. noch integrieren könnte, darüber entscheidet der Aufwand.

Und: Die Hilfeeinträge der Del-Funktionen sind noch nicht integriert. (B40)

Sollte alles umgesetzt werden können, fürchte ich, braucht man für das Tool einen Waffenschein 8) ;D .

Schönen Gruß,

Werner.
 
hallo werner,

Und: Die Hilfeeinträge der Del-Funktionen sind noch nicht integriert. (B40)
keine angst, spätestens in der nächsten beta.
ich bekomme die änderungen ja auch erst mit, wenn die beta draussen ist

grüsse
micha
 
V2.76 B41:
VT_BSTR FF_IListGetLists() liefert alle virtuellen Listen in einem String, mit CRLF getrennt.
VT_EMPTY FF_IListSort(VT_BSTR name, VT_BSTR type) Sortiert die Liste. 0=name aufsteigend, 1=Name absteigend, 2=Datum aufsteigend, 3=Datum absteigend.
 
Zurück
Oben