Zwischenspeichern als Erweiterung für Stapelverarbeitung

AitschPi

Mitglied
Registriert
19.08.05
Beiträge
41
Ort
Bergkamen
Hi,

hatte schon mal über den Bereich "Verbesserungsvorschläge" angeregt, sowas einzuführen - dank der Erweiterungsmöglichkeiten der Stapelverarbeitung habe ich mir nun selbst geholfen und voila, mein erstes und doch sehr übersichtliches Erweiterungsskript ist da:

Code:
// FFSubmenu=Speichern
// FFName=Jetzt speichern

FF_SaveImage(dstname,jpeg_qual);
Das einfach als Textdatei mit einem Namen "xyz.js" (xyz natürlich individuell vergeben) in den Unterordner "BatshSkript\Boost" einbinden und bei der nächsten Stapelverarbeitung ist das Skript unter "Erweiterungen" verfügbar.

ACHTUNG: Das Skript speichert gnadenlos. An dieser Stelle und unter dem zu diesem Zeitpunkt vergebenen Namen!!! Also wer nicht aufpasst, riskiert im einfachsten Fall, dass am Ende des Durchgangs das Bild durch das fertig bearbeitete überschrieben wird, im schlimmsten Fall aber das Überschreiben des Originals! Ich setze vor diesen Befehl immer "speichern unter" und wähle dort den Namen, unter dem ich das Zwischenergebnis auf der Platte wiederfinden will, danach rufe ich den Befehl "speichern unter" noch einmal auf, diesmal zur Vergabe des Namen, unter dem das Ergebnis der gesamten Bearbeitung am Ende gespeichert werden soll.

AitschPi

PS: Danke nochmal an Heinz Höfling - ich habe mal Ostern schon vorgezogen... ;o)
 
Zuletzt bearbeitet von einem Moderator:
AW: Zwischenspeichern als Erweiterung für Stapelverarbeitung

Wobei,
mir erschliesst sich noch nicht der Sinn so eines Zwischenspeicherns im Ablau einen Stapels ???
 
AW: Zwischenspeichern als Erweiterung für Stapelverarbeitung

Bei etwas in der Art würde ich mich wohler fühlen:

Code:
 {
 var spliteddestname=SplitPath(dstname);
 var mein_dstname= spliteddestname.dir + spliteddestname.file + '_tmp' + spliteddestname.ext;
 FF_SaveImage(mein_dstname,jpeg_qual);
}

Erzeugt dann immer dstname_tmp.ext im gleichen Verzeichniss und du kannst dir einmal "Speichern unter" sparen. 8-)
 
AW: Zwischenspeichern als Erweiterung für Stapelverarbeitung

Hallo,

wenn, dann würde ich zum Zwischenspeichern eh nur ein verlustfreies Speicherformat verwenden und nicht unbedingt JPEG.

Schönen Gruß,

Martin
 
AW: Zwischenspeichern als Erweiterung für Stapelverarbeitung

@ Heinz: Ist zwar für den "unbedarften" Anwender besser, aber nicht für "meine Zwecke"!

@ Martin: Hatte ich schon immer befürchtet... ;o)

Beispiel:
Ich um 01:00 nachts von 'nem Auftrag zurück und am nächsten Morgen wollte ich die passenden Fotos aus den vorab optimierten Bildern auswählen und die Dateien - wegen des Datenvolumen auf DVD's - veschicken.

Früher waren folgende Skripte nötig:

1. Bild mit EXIF/IPTC-Daten versehen
2. Bild mit I2E optimieren
3. Speichern unter %nam"_opt"

So, jetzt musste ich nachts nochmal raus und das 2. Skript starten:
1. Bild mit EXIF/IPTC-Daten versehen
2. Bild mit I2E optimieren
3. in schwarz/weiss umwandeln
4. Speichern unter %nam"_opt_sw"


Heute mache ich das wie folgt und kann durchschlafen:
1. Bild mit EXIF/IPTC-Daten versehen
2. Bild mit I2E optimieren
3. Speichern unter %nam"_opt"
4. Zwischenspeichern
5. in schwarz/weiss umwandeln
6. Speichern unter %nam"_opt_sw"

Ok, etwas sehr bildlich beschrieben - aber so war's auch gemeint. Da ich weiss, was diese kleine zeile anrichten kann, nutze ich das "speichern unter" 2x. Daher brauche ich auch keine Zeile mit festen "_tmp" - das müsste ich entweder auchständig irgendwo in einem Verzeichnis ändern oder die Hälfte der Dateien nochmal umbenennnen. Eventuell mache ich das Später mit einem Dialog nach dem beispiel von "speichern unter", jedoch 2 ähnliche Dialoge mit völlig verschiedem Ergebnis finde ich verwirrender.

Habe ich das jetzt halbwegs verständlich erklärt? ;o)

AitschPi
 
AW: Zwischenspeichern als Erweiterung für Stapelverarbeitung

Hallo AitschPi,

AitschPi schrieb:
@ Martin: Hatte ich schon immer befürchtet... ;o)
;D

AitschPi schrieb:
Habe ich das jetzt halbwegs verständlich erklärt? ;o)
Halbwegs ja, nur wunderts mich, dass Du erst Speichern unter ausführst (Schritt 3) und dann sofort noch Zwischenspeichern (Schritt 4). Das versteh ich noch nicht.

Schönen Gruß,

Martin
 
AW: Zwischenspeichern als Erweiterung für Stapelverarbeitung

Hallo Martin,

"Speichern Unter" bewirkt nur die Namensänderung und setzen des Dirty-Flags. Gespeichert wird in der Stapelverarbeitung immer erst am Schluss.
Daher ist Zwischenspeichern erforderlich.

Schönen Gruß,
Werner.
 
AW: Zwischenspeichern als Erweiterung für Stapelverarbeitung

Hallo Werner,

jetzt ists klar, danke für die Aufklärung :)

Schönen Gruß,

Martin
 
AW: Zwischenspeichern als Erweiterung für Stapelverarbeitung

Werner, danke - du gibst mir Hoffnung, noch verstanden zu werden... *lach*
 
AW: Zwischenspeichern als Erweiterung für Stapelverarbeitung

Hallo AitschPi,

an der Stelle mal danke für den Vorschlag zum 'Zwischenspeichern' in der Stapelverarbeitung.
Ich habe Null Ahnung von Skripten und das dann gleich mal 'abgekupfert' um in einem Rutsch 3 Größen (Original, Web-Größe 800x600, Thumbnail) jedes Bildes anfertigen zu können. Ich habe dazu noch die Zeile
if(0 != file_size) jpeg_qual = FF_GetJPGCompression(file_size);
vor dem Speichern eingefügt. Damit wird beim Speichern auch eine vorher gesetzte Dateigröße übernommen.

Ausgehend von den oben erwähnten Punkten 1-4 kommt bei mir dann
5. Bildgröße 800x600
6. Dateigröße 100000
7. Speichern unter %nam"_opt_web"
8. Zwischenspeichern
9. Bildgröße 80x60
10. Speichern unter %Thumb_%nam"_opt_web"

Schlechtes Wetter und 'Vorscherdrang' haben mich dann noch auf die Frage gebracht: wie kann ich auch noch ein S/W-Bild in Originalgröße im gleichen Stapel erzeugen ?

Dazu bin ich auf zwei weiter Einzeiler-Boost-Skripts zum 'Zwischenspeichern' einer Bildversion auf dem Stack verfallen:

Push mit Inhalt FF_PushImage();
und Pop mit Inhalt FF_PopImage();

Der Beispiel-Stapel müsste dann vor Punkt 5 noch Push als Schritt einzufügen werden
und der Stapel würde dann mit

11. Zwischenspeichern
12. Pop (1.optimiertes Bild wiederherstellen)
13. in schwarz/weiss umwandeln
14. Dateigöße 0 (um die 100000 aus Schritt 6 zu eliminieren)
14. Speichern unter %nam"_opt_sw"

weitergehen.

So und nun, da ich ja wie oben erwähnt keine Ahnung von Skripten habe, die Frage an die Spezialisten: Kann die Nutzung des Stacks auf diese Art irgendwelche unliebsame Nebenwirkungen in der Stapelverarbeitung haben ?

Gruß

Thomas
 
AW: Zwischenspeichern als Erweiterung für Stapelverarbeitung

Ah! Gute Idee - und jemand, der mich versteht! *lach*

Werde das "push/pop" auch geich umsetzen...

Ja, ich weiss, das man auch damit seehr vorsichtig umgehen soll, man will ja nich den stack überlaufen lassen - also wer "push" sagt, muss auch "pop" sagen! ;o)
 
AW: Zwischenspeichern als Erweiterung für Stapelverarbeitung

Und was macht ein "Skript-Blondchen", wenn es innerhalb einer Stapelverarbeitung zwischenspeichern will?
*ganzliebundtreudoofschau*

Grüße
Ute
 
AW: Zwischenspeichern als Erweiterung für Stapelverarbeitung

Hallo Ute,

naja eventuell folgenden Code als z.B. zwischenspeichern.js im Unterverzeichnis \BatchScript\Boost speichern:
Code:
// FFSubmenu=Speichern
// FFName=Zwischenspeichern

if(running)
{
if(0 != file_size) jpeg_qual = FF_GetJPGCompression(file_size);
FF_SaveImage(dstname,jpeg_qual);
}
//Module Zwischenspeichern.js ende

Nicht vergessen vor dem Zwischenspeichern über Speichern unter einen neuen Namen festzulegen.

Gruß

Thomas
 
AW: Zwischenspeichern als Erweiterung für Stapelverarbeitung

Hallo Thomas,

ich werde es mal probieren, mit einem "professionellen" copy&paste ;-)

Danke
Ute
 
AW: Zwischenspeichern als Erweiterung für Stapelverarbeitung

Hallo Ute,

da das Boost-Skript eine Bastellösung ist, passt doch copy & paste hervorragend ;D

Gruß

Thomas
 
Im Stapel mehrere Versionen Speichern

Hallo,

ich möchte folgendes in einem Stapel realisieren:

1. Originalbild als "orig_%Datum%_%Zeit%.jpg" speichern (Um die Nummeriereung der Camera zu umgehen und die original Bilder zu erhalten - Sicher ist Sicher).

2. Bildoptimierung und Exif-Daten setzen.

3. IPTC Stichwörter setzen (geht das?)

3. Bild als "%Datum%_%Zeit%.jpg" speichern. (Das Bild soll standardmäßig verwendet werden)

4. Bild verkleinern (für WEB-Ansicht)

5. Bild als "min_%datum%_%Zeit%.jpg" speichern.

Jetzt da Problem: Es wird nur die letzte Version gespeichert. Was mache ich falsch?

Vielen Dank.

Uwe
 
AW: Im Stapel mehrere Versionen Speichern

Gespeicher wird immer einmal am Ende des Stapels.
Da wirst du wohl mehre Stapel draus machen müssen.
Bzw das Umkopieren/Umbenennen vorher einzeln durchführen.
 
AW: Im Stapel mehrere Versionen Speichern

Hallo Uwe.
Nichts machst Du falsch - in SV geht nur einmal speichern.

Leider, habe ich auch schon vergeblich gewollt ;-)

Gruß, Michael.
 
AW: Zwischenspeichern als Erweiterung für Stapelverarbeitung

Hallo!

Siehe oben. IPTC geht nicht in der SV, müßte aber mit dem Skript WPIPTC gehen.

Gruß,

Ralf
 
AW: Zwischenspeichern als Erweiterung für Stapelverarbeitung

Hallo Uwe,

naja klar standardmäßig geht mehrfaches speichern in der SV nicht.
Aber aus dem Grund hatte AitschPi ja diesen Beitrag hier geschrieben um eine 'Bastellösung' über ein Boostscript vor zu stellen. Das Script selbst und wo es hin muss und wie damit umzugehen ist, ist doch hier beschrieben. Mit der 'Bastellösung' Boostscript sollte dein Vorhaben schon umsetzbar sein. Man muss aber halt genau aufpassen was man damit anstellt - also zumindest erstmal mit Testdaten probieren.

Gruß

Thomas
 
Zurück
Oben