Zusammenarbeit WebGall (JS) mit CopyExif (VBS) !?

  • Ersteller Ersteller Hippo6
  • Erstellt am Erstellt am
H

Hippo6

Gast
Moin Ihr Scripteure,

meine Idee: WebGall um Exif-Daten erweitern.

mein letzter Versuch:
WebGall ergänzt (bitte nicht lachen)

ACHTUNG:
Die Fehler sind gefunden, aber nachfolgend nicht vollständig beseitigt.
WebGall wird von mir nach Abstimmung mit Poeth als EXIF-Variante als Paket in den Downloadbereich gestellt.
-Eike alias Hippo6-


[]
          var PageBase = WebBase + "pages\\";
          var ImgBase  = WebBase + "images\\";
          var PicName;

          // EB: EXIF-Variablen
          var ImgDescription, Model, UserComment, ISOSpeedRatings, FNumber, ShutterSpeedValue, FocalLength, Flash
          //


             FF_LoadImage(currPic);

               //
               // EB: Hier werden die EXIF-Daten gewonnen
               testexif = FF_HasExif
               if (testexif = 1){
   // berichtigt - wahr: if (testexif = TRUE) {
               ImgDescription    = FF_GetExifTag(ImgDescription)
               Model             = FF_GetExifTag(Model)
               UserComment       = FF_GetExifTag(UserComment)
               ISOSpeedRatings   = FF_GetExifTag(ISOSpeedRatings)
               FNumber           = FF_GetExifTag(FNumber)
               ShutterSpeedValue = FF_GetExifTag(ShutterSpeedValue)
               FocalLength       = FF_GetExifTag(FocalLength)
               Flash             = FF_GetExifTag(Flash)
               }
               //


               //
               // Scale + Save
               FF_HQScale(imgwidth, imgheight, true);
               FF_SaveImage(idxPic,90)
[]
function ParseIt(textline){
       var re;

       re = /@@PicName/g;
       textline = textline.replace(re, PicName);

       re = /@@MaxPicName/g;
       textline = textline.replace(re, "Max"+PicName);

       re = /@@ttl/g;
       textline = textline.replace(re, TitleString);

       re = /@@stl/g;
       textline = textline.replace(re, SubTtlString);

       re = /@@eml/g;
       textline = textline.replace(re, AuthorEmail);

       re = /@@nme/g;
       textline = textline.replace(re, AuthorName);

       re = /@@HeaderBgCol/g;
       textline = textline.replace(re, HeaderBgCol);

       re = /@@ImgBgCol/g;
       textline = textline.replace(re, ImgBgCol);

       re = /@@PopBgCol/g;
       textline = textline.replace(re, PopBgCol);

       re = /@@FooterBgCol/g;
       textline = textline.replace(re, FooterBgCol);

       re = /@@BannerImg/g;
       textline = textline.replace(re, BannerImg);

       //
       // EB: EXIF-Daten ins HTML
       re = /@@ImgDescription/g;
       textline = textline.replace(re, ImgDescription);

       re = /@@Model/g;
       textline = textline.replace(re, Model);

       re = /@@UserComment/g;
       textline = textline.replace(re, UserComment);

       re = /@@ISOSpeedRatings/g;
       textline = textline.replace(re, ISOSpeedRatings);

       re = /@@FNumber/g;
       textline = textline.replace(re, FNumber);

       re = /@@ShutterSpeedValue/g;
       textline = textline.replace(re, ShutterSpeedValue);

       re = /@@FocalLength/g;
       textline = textline.replace(re, FocalLength);

       re = /@@Flash/g;
       textline = textline.replace(re, Flash);

       return(textline);
}
[]

Bringt zuletzt:
'TRUE' ist undefiniert
Src: Laufzeitfehler in Microsoft JScript
Line:83 Error:0 Scode:800a1391

Dieses Projekt wurde nach Studium von CopyExif von mir auf Eis gelegt, weil CopyExif eine komplette Tabelle zum Kopieren bereitstellt.

meine neue Idee:
WebGall so erweitern, dass für jedes Pic CopyExif geöffnet, vom ausgewählten Pic bestimmte Exif-Tags als Tabelle in den Zwischenspeicher ablegt und von WebGall als Variable in das HTML-Template eingefügt wird. Und das als Schleife für alle ausgewählten Pics... :)

Unbekannte Größen für mich:
1. Kann ich CopyExif die Auswahl-Tabelle von WebGall(per Kommandozeile?) entlocken? (Zaph?)
2. Wenn ja: Wie ist die Tabelle von WebGall (JS) aus dem Zwischenspeicher zu holen? (Poeth?)
3. Mit welchen FF_Befehlen kann ich ersatzweise einzelne Tags auslesen und übernehmen.

Ich hab bisher nur "undefined" auf meine Galerie zaubern können... und gar keine Vorbildung, was VBS oder JS angeht.

meine Minimal-Idee:
Wenigstens den Exif(ImgDescription) auslesen und als Bildunterschrift einfügen. Das wäre doch auch ein Muster für den Rest.

Damit ich mich aber nicht an unmöglichen Ideen aufreibe, hier zunächst mal die Bitte an unsere Fachleute sich den Quatsch oben mal anzusehen und zu korrigieren.
Ist jemand Anderer schon an sowas dran oder ebenfalls gescheitert?
Benutzt jemand außer mir (und Poeth) überhaupt WebGall? ;)

Ich finde, dass die HTML-Templates wunderbar in bestehende Webseiten intergriert werden können und
bin deshalb so brennend an einer Anpassung interessiert.

Auf denn, macht Vorschläge... :)
 
Re: Zusammenarbeit WebGall (JS) mit CopyExif (VBS)

Hallo Eike.

mein letzter Versuch:
WebGall ergänzt (bitte nicht lachen)
Warum sollte hier jemand lachen?

'TRUE' ist undefiniert
Src: Laufzeitfehler in Microsoft JScript
Line:83 Error:0 Scode:800a1391
Das liegt daran, dass es TRUE und FALSE in der Form nicht gibt. FALSE ist 0 und TRUE ist ungleich 0. Probier's mal aus!


I... und gar keine Vorbildung, was VBS oder JS angeht.
So ging es mir bis ich mit dem Script angefangen habe ebenfalls (was sich leicht feststellen lässt, wenn man sich die Sourcen genauer anschaut).
Inzwischen habe ich (v.a. durch die 'Lektüre' anderer Scripts) etwas mehr Gefühl dafür bekommen, was man machen kann und auf welche Weise.

Benutzt jemand außer mir (und Poeth) überhaupt WebGall? ;)
Es wurde jedenfalls schon ein paar Mal 'downgeloadet', insofern benutzt es vielleicht die eine oder der andere auch.

Grüße
#poeth
 
Re: Zusammenarbeit WebGall (JS) mit CopyExif (VBS)

Hi Poeth,

du kannst Mut machen :(
Es hat allein drei Tage gedauert, bis ich den Programmablauf etwas geblickt habe, aber mehr auch nicht. Abgucken ist nicht. Wenn ich das Script wechsle, ist das Gemerkte auch weg. Flüchtiger Speicher eben. Das Alter, Stress und ein paar Umweltgifte, denke ich.

Das Script ist nach Änderung von 'TRUE' auf '1' wenigstens ohne Fehlermeldung durch.
Mein '@@ImgDescription', was ich als Erfolgskontrolle im HTML-Template eingebaut habe liefert jetzt aber nicht mal ein 'undefined' :(

Irgendwie gerät mein Bild von den Könnern hier in Schieflage. Dann sollte es doch wenigsten eine Gemeinschaftsleistung werden. ;)

Immerhin hab ich neben uns noch mindestens einen anderen Nutzer ausgemacht: Günter ;)

@Zaph:
Falls du hier mitliest, kannst du mal gucken, ob der Exif-Tag oben richtig ausgelesen wird, oder müsste ich das anders aufziehen...?
 
Re: Zusammenarbeit WebGall (JS) mit CopyExif (VBS)

Hallo Eike.

Vielleicht komme ich im Laufe des Abends mal dazu ein wenig zu experimentieren. Ich lasse dich wissen, wenn ich etwas herausfinde.

Das Auslesen der EXIF-Infos sieht korrekt aus.

Liegt es an dem HTML-Template? Versuche doch einmal folgendes:
Ersetze bspw. die ImageDescription zunächst einmal durch einen fixen Text 'Beschreibung'. Wenn das Template stimmt, sollte auf jeder Seite dieser Text erscheinen.

Wenn das klappt ist der Wurm tatsächlich im Auslesen der EXIF-Info; andernfalls stimmt noch etwas mit dem Template nicht.

Grüße
#poeth
 
Re: Zusammenarbeit WebGall (JS) mit CopyExif (VBS)

Hallo Eike.

Ich habe den Fehler gefunden; war natürlich ein echter Klassiker ;):

Anstatt
[...]
Model             = FF_GetExifTag(Model)
[...]
muss es heissen
[...]
Model             = FF_GetExifTag(
"Model")
[...]

Außerdem stimmen nicht alle Tag-Bezeichnungen in deinem Source-Code (bspw. ImageDescription anstatt ImgDescription).

Grüße
#poeth
 
Re: Zusammenarbeit WebGall (JS) mit CopyExif (VBS)

Wo finde ich eigentlich das Webgall-Skript. Im offiziellen Downloadbereich finde ich nur eins, das keine Buttons hat.
Achim
 
Re: Zusammenarbeit WebGall (JS) mit CopyExif (VBS)

Sorry! Der Upload scheint schief gegangen zu sein. Anscheinend wird nichts überschrieben, sondern man muss die bestehende Datei zuerst löschen. Jetzt sollte es geklappt haben.

Grüße
#poeth
 
Re: Zusammenarbeit WebGall (JS) mit CopyExif (VBS)

Hallo Eike.

Ich habe den Fehler gefunden; war natürlich ein echter Klassiker ;):

Anstatt
[...]
Model             = FF_GetExifTag(Model)
[...]
muss es heissen
[...]
Model             = FF_GetExifTag(
"Model")
[...]

Außerdem stimmen nicht alle Tag-Bezeichnungen in deinem Source-Code (bspw. ImageDescription anstatt ImgDescription).

YEPP!!!
Das war der Durchbruch :)
Aber ich halte eher den Verschreiber für einen Klassiker ;)

ImgDescription hab ich irgendwo aufgelesen.
Im FFScript.htm steht's richtig.

Schulterklopf für uns beide.  ;D

Zieh mich jetzt erstmal wieder zurück für's Feintuning.
Wird sicher noch ein paar Tage dauern.
Aber ich brauch sicher nochmal Anschub.
 
Re: Zusammenarbeit WebGall (JS) mit CopyExif (VBS)

Hallo Poeth,

ich hab's gewusst. Irgendwie will das mit der Entschlüsselung des Flash-Tags nicht klappern.
Folgende Sequenz gibt immer das letzte Ergebnis 'andere' aus. Das erste Bild ist aber 'Blitz ist nicht gefeuert'.

[...]
               //
               // EB: Hier werden die EXIF-Daten gewonnen
               testexif = FF_HasExif
               if (testexif = 1) {
                       Make                    = FF_GetExifTag("Make")
               Model             = FF_GetExifTag("Model")      
               ImageDescription  = FF_GetExifTag("ImageDescription")
               ISOSpeedRatings   = FF_GetExifTag("ISOSpeedRatings")
               FNumber           = FF_GetExifTagAdvanced("FNumber")
               ExposureTime      = FF_GetExifTagAdvanced("ExposureTime")
               FocalLength       = FF_GetExifTagAdvanced("FocalLength")
               Flash             = FF_GetExifTag("Flash")
               UserComment       = FF_GetExifTag("UserComment")
                             
           // EB: 'Geklaut' aus CopyExif by Zaph
                 if (Flash = "&H00") {
                       formatExif = "Blitz nicht gefeuert" };
                 if (Flash = "&H01") {
                       formatExif = " Blitz gefeuert" };
                 if (Flash = "&H05") {            
                       formatExif = " reflektiertes Impulslicht nicht erkannt" };
                 if (Flash = "&H07") {            
                       formatExif = " reflektiertes Impulslicht erkannt" };
                 if (Flash = "&H09") {                  
                       formatExif = " Blitz gefeuert, Blitzmodus:an" };
                 if (Flash = "&H0D") {            
                       formatExif = " Blitz gefeuert, Blitzmodus:an, reflektiertes Licht nicht erkannt" };
                 if (Flash = "&H0F") {                  
                       formatExif = " Blitz gefeuert, Blitzmodus:an, reflektiertes Licht erkannt" };
                 if (Flash = "&H10") {                  
                       formatExif = " Blitz nicht gefeuert, Blitzmodus:an" };
                 if (Flash = "&H18") {                  
                       formatExif = " Blitz nicht gefeuert, Blitzmodus:auto" };
                 if (Flash = "&H19") {            
                       formatExif = " Blitz gefeuert, Blitzmodus:auto" };
                 if (Flash = "&H1D") {            
                       formatExif = " Blitz gefeuert, Blitzmodus:auto, reflektiertes Licht nicht erkannt" };
                 if (Flash = "&H1F") {            
                       formatExif = " Blitz gefeuert, Blitzmodus:auto, reflektiertes Licht erkannt" };
                 if (Flash = "&H20") {            
                       formatExif = " keine Blitzfunktion" };
                 if (Flash = "&H41") {            
                       formatExif = " Blitz gefeuert, Rote-Augen Funktion" };
                 if (Flash = "&H45") {            
                       formatExif = " Blitz gefeuert, Rote-Augen Funktion, reflektiertes Licht nicht erkannt" };
                 if (Flash = "&H47") {            
                       formatExif = " Blitz gefeuert, Rote-Augen Funktion, reflektiertes Licht erkannt" };
                 if (Flash = "&H49") {            
                       formatExif = " Blitz gefeuert, Blitzmodus:an, Rote-Augen Funktion" };
                 if (Flash = "&H4D") {            
                       formatExif = " Blitz gefeuert, Blitzmodus:an, Rote-Augen Funktion, reflektiertes Licht nicht erkannt" };
                 if (Flash = "&H4F") {            
                       formatExif = " Blitz gefeuert, Blitzmodus:an, Rote-Augen Funktion, reflektiertes Licht erkannt" };
                 if (Flash = "&H59") {            
                       formatExif = " Blitz gefeuert, Blitzmodus:auto, Rote-Augen Funktion" };
                 if (Flash = "&H5D") {      
                       formatExif = " Blitz gefeuert, Blitzmodus:auto, reflektiertes Licht nicht erkannt, Rote-Augen Funktion" };
                 if (Flash = "&H5F") {            
                       formatExif = " Blitz gefeuert, Blitzmodus:auto, reflektiertes Licht erkannt, Rote-Augen Funktion" };
                 if (Flash = "&HFF") {            
                       formatExif = "andere"
                       };
                 Flash = formatExif
[...]

Variable 'Flash' wird dann ins HTML gemodelt...
Ich hab das Gefühl, dass der mit FF_GetExifTag(Flash) gewonnene Wert noch gewandelt oder anders verglichen werden muss.

Ansonsten bin ich begeistert von den Ergebnissen :D

Gibst du mir bitte nochmal Anschub, Poeth?
Könnte sein, dass ich morgen schon 'abliefern' kann ;)
 
Re: Zusammenarbeit WebGall (JS) mit CopyExif (VBS)

Hallo Eike.

Muss ins Bett, daher nur ganz kurz. Das Script von Zaph ist wahrscheinlich in VB, daher ist das nicht eins zu eins übertragbar. Wie schon erwähnt, bin ich auch ein Scripting-Rookie, daher müsste ich selbst mal forschen.

Ich würde aber vorschlagen, dass du zunächst einmal das umkodieren des Flash-Tags sein lässt. Schreib doch einfach das in die HTML-Seite, was in dem Tag drin steht. Dann kannst du erkennen, wie dein Vergleich-String heißen muss (vermutlich eben nicht "&H00").

Grüße
#poeth

P.S. Noch einmal wegen deines ersten Problems diese Woche: Versuch einmal anstatt TRUE, true zu verwenden; das müsste klappen.
 
Re: Zusammenarbeit WebGall (JS) mit CopyExif (VBS)

Hi Poeth,
zunächst ist mir nicht bekannt, was ein Rookie ist. Aus den Zusammenhängen muss ich schließen, dass das ein Anfänger sein muss. Richtig? Gut.
Ich hab auch nicht die ersthafte Erwartung, dass du jedesmal eine Lösung für mich hast, sondern die Hoffnung, dass dir dieses oder ein ähnliches Problem schon Mal untergekommen ist. Oder einem der anderen Kameraden hier, die sich ruhig einmischen dürfen.

Zumindest hat dein Hinweis, einfach nur mal den Inhalt von 'Flash' auf die Seite zu schreiben, doch wieder weitergeholfen. Es sind doch oft auch nur die kleinen Ansätze, mal was anderes zu probieren. Jetzt weiß ich zumindest, dass er für das erste Bild einfach nur '0' ausgibt. Also ist der von Zaph verwendete "&H00" wohl nur der Hex von 0. Wenn ich jetzt einen Hex-Rechner hätte oder eine Tabelle... Zumindest weiß ich jetzt wonach ich suchen muss.

Übrigens ist dies das letzte 'Problem' (nicht wirklich, da ich sonst auch verzichtet hätte) im Moment.
Das Script und die Webseite steht.
 
Re: Zusammenarbeit WebGall (JS) mit CopyExif (VBS)

zunächst ist mir nicht bekannt, was ein Rookie ist. Aus den Zusammenhängen muss ich schließen, dass das ein Anfänger sein muss. Richtig? Gut.
Stimmt genau!

Also ist der von Zaph verwendete "&H00" wohl nur der Hex von 0. Wenn ich jetzt einen Hex-Rechner hätte oder eine Tabelle...
Schau mal hier nach!

Das Script und die Webseite steht.
Dann lass doch mal sehen...

Grüße
#poeth
 
Re: Zusammenarbeit WebGall (JS) mit CopyExif (VBS)

Hallo!

Zum HEX-Rechner: Einfach den Windows-Rechner auf 'wissenschaftlich' umstellen! ;)

Gruß,

Ralf
 
Re: Zusammenarbeit WebGall (JS) mit CopyExif (VBS)

Hab schon einen Hex-Rechner gefunden, danke - auch an Ralf.

Dann lass doch mal sehen...

Nee, ist noch nix für Öffentlichkeit.
Es fehlt noch 'Blitz', hab's aber... (hoffe ich zumindest, es stehen noch Tests mit 'geblitzt' aus)

Und ein wenig Feintuning an der Seite. Ist aber auch bei 98%.

Ich muss dann auch noch das Paket schnüren und vor allem dokumentieren ;)
 
Zurück
Oben