• In eigener Sache!

    Liebe Mitglieder, liebe Besucher und Gäste
    ich weiß, es ist ein leidiges Thema, aber ich muss es ansprechen: Werbung, Werbeblocker und Finanzierung des Forums.
    Bitte hier weiterlesen ...

  • Neuer Partner: AkkuShop.de
    Akkus, Ladegeräte und mehr (nicht nur) für Digitalkameras und Drohnen
  • Nicht erreichbare Adressen im Benutzerkonto
    Wir bekommen zurzeit eine große Anzahl an E-Mails, die das System zum Beispiel als Benachrichtigungen an Nutzer verschickt,
    als unzustellbar zurück, weil z.B. die Adressen nicht erreichbar sind oder das Postfach gar nicht existiert.
    Stellt doch bitte sicher, dass die Benachrichtigungen, die ihr vom System erwartet, auch zugestellt werden können.
    Nicht erreichbare E-Mail-Adressen sind dazu wenig hilfreich.
    Danke!
  • Stimmt ab über die Sieger des DSLR-Forum Fotowettbewerbs April 2025.
    Thema: "Plastik (Kunststoff)"

    Nur noch bis zum 30.04.2025 23:59!
    Jeder darf abstimmen!
    Zur Abstimmung und Bewertung hier lang
  • Neuer Gutscheincode unseres Partners Schutzfolien24:
    DSLR-Forum2025
    Dauerhaft 10% Rabatt auf alle Displayschutzfolien und Schutzgläser der Eigenmarken
    "Upscreen", "Screenleaf", BROTECT" und "Savvies".
    Der Code ist für alle Geräteklassen gültig.
  • Unlauterer Verkäufer wieder unterwegs!

    Liebe Mitglieder,
    Florian Franzek, der seit Jahren mit verschiedensten Usernamen in allen möglichen Foren und auf etlichen Verkaufsplattformen auftritt,
    ist wieder hier im Forum und versucht, ehrliche Käufer zu betrügen.
    Wir können wenig tun, außer bei Bekanntwerden einer weiteren Registrierung eines Accounts für seine Machenschaften, diese umgehend zu sperren.
    Ich empfehle, bei Kontakt umgehend die Polizei einzuschalten.

WERBUNG

Photoshop-Stapelverarbeitung: Speichern unter... Speicherort?

nubi

Themenersteller
Hallo Leute.

Wenn man in PS Aktionen für die Stapelverarbeitung aufzeichnet, dann wird bei "Speichern unter"-Aufrufen der gewähle Zielordner als absoluter Pfad gespeichert. Wie löst Ihr das, wenn z.B. von einen Foto-Ordner Kopien in verschiedenen Auflösungen erzeugt werden sollen, jeweils in einem eigenen Unterordner des Ausgangs-Speicherortes?
Im Stapelverarbeitungs-Dialog kann man wohl theoretisch noch manuell eingreifen und einen Zielordner überschreiben. Was aber, wenn man mehrere Ordner haben möchte? Oder beim Erzeugen von Droplets, wo diese Eingriffsmöglichkeit naturgemäß entfällt?

Für mich war es ein Schönheitsfehler, dass meine Droplets die Ausgabe immer in den selben, vorgegebenen Ordner geschrieben haben, die auch noch bereits angelegt sein musste. Hab' mir deshalb kürzlich ein kleines Skript als Ersatz für den "Speichern unter"-Dialog geschrieben. Er wird beim Aufzeichnen von Aktionen anstelle von "Speichern unter" verwendet und fragt neben dem Zielformat einen gewünschten Ziel-Unterordner-Namen ab. Beim Abspielen der Stapelverarbeitung wird dieser Ordner dann (ausgehend vom Speicherort des "Originals") bei Bedarf erstellt und Kopien dort gespeichert. Neben dem Zielformat lassen sich teilweise noch formatabhängige Parameter wählen.




Vielleicht kann es ja sonst noch jemand gebrauchen.

ciao
nubi
 
Jetzt kann ich Dir leider keine Lösung für Photoshop geben, aber zumindest ein Gratis-Tool für PS empfehlen, das die Dienste versehen kann: Dr. Brown's 1-2-3 JPEG: Du kannst 3 Seitenlängen (richtig eingestellt wird Hoch- und Querformat richtig behandelt) für die drei neuen Bilderserien geben und diese in automatisch erzeugte, wählbare Unterordner schreiben lassen. Darüberhinaus kann für jede Skalierung eine Aktion aufgerufen werden - sinnvoll zum Nachschärfen.
 
@tulponaut:

Die Frage zielte eher darauf, ob es das, was ich jetzt selbst geschrieben habe, auch schon eingebaut gewesen wäre.

Aus aktuellem Anlass :) noch die Hinweise, dass das "In Unterordner speichern"-Skript auf meiner Homepage steht (mit dem Screenshot verlinkt). Und: Es ist, wie die anderen Scripte auch, für CS3 geschrieben und läuft wohl nicht mit älteren Versionen.

ciao
nubi
 
Hallo nubi,
aktueller denn je, und ich hätte es sehr gerne, gibt es das Skript "In Unterordner speichern" noch irgendwo - vielleicht kannst Du mir ein Email schreiben.
 
Moin, das Problem habe ich auch. Ich behelfe mir da tatsächlich mit verschiedenden Ordnern und Aktionen.
Wenn Bilder auf 60% verkleinert werden sollen, schiebe ich sie in den Ordner PS-60 und wende darauf die Aktion PS-60 an.
Wenn Bilder auf 75% verkleinert werden sollen, schiebe ich sie in den Ordner PS-75 und wende darauf die Aktion PS-75 an.
usw.

Toll dass Du ein Script zur Verfügung stellst. Aber leider ist mein Workflow da schon seit seehr langer Zeit entsprechend eingeschliffen.
 
Zuletzt bearbeitet:
ok, danke @Marco - gibt es aber eine "onboard" Lösung seitdem?

Bei mir ist der Bedarf,
ich lege Projekt-Ordner an, darin jeweils einen Ordner "Bilder" wo immer gleichartige Zeichnungen der Konstruktion hinheinkommen.
Nachdem ich Bilder wie benötigt zugeschnitten und angepasst habe, möchte ich diese mit einem Prefix ("Fertig-") abspeichern und das auch immer innerhalb des Ordners aus dem heraus ich geöffnet habe (oder gerne auch in separaten Ordner.

Das Problem ist die "unabhängige" Speicherung, die ich nicht hinbekomme, damit ich es bei allen Projekten per Aktion machen kann. Denn es ist ein immenser aufwand immer Datei/Speichern unter zu klicken, Prefix vergeben, abschicken und nochmal mit Return bestätigen. Das würde ich gerne per Aktion automatisieren.

Immer - sowohl bei "Aktion aufzeichnen" wie auch "Stapelverarbeitung" muss man aber einen definierten Pfad angeben, der natürlich nur für diese eine Nutzung in diesem einen Projekt passt.
Wenn man aber ein Skript hätte welches das Speichern am Quellort oder in einem gesonderten Ordner ermöglichen würde - dann könnte man die Aktion egal wo man ist - anwenden.

gibt es hierfür mittlerweile eine Lösung - oder ist das auch 16 Jahre später mit Onboardmittel nicht machbar?
 
Noch eine Variante mit Ps Außen-Bord-mitteln (SDK und JavaScript). Das Script erzeugt JPGs von der geöffneten Datei in verschiedenen Größen, in meinem Beispiel von 6 bis 12. Jedes JPG wird in einem separaten Unterverzeichnis unterhalb des geöffneten Dokuments abgelegt, und das Verzeichnis hat den Namen der JPG Qualitätsstufe. Das Bild bekommt zum Namen des Dokuments einen Präfix, in meinem Beispiel Fertig_. Soll kein Präfix davor, die Zeile abändern in in filePrefix = '';. Ist die Datei bereits vorhanden, wird sie kommentarlos überschrieben.
Nach dem Speichern der JPG Varianten wird die Quelldatei geschlossen, Änderungen sollte also vorher gespeichert sein. Nachtrag: wenn Änderungen gemacht wurden und diese im Originaldokument nicht gespeichert werden sollen, aD.close(); ändern in aD.close(SaveOptions.DONOTSAVECHANGES);
Das Script kann auch in einer Aktion und darüber dann auch in einer Stapelverarbeitung verwendet werden. Sinnvollerweise sollte in den Stapelverarbeitungsoptionen "Dateien nur speichern, wenn Aktionsset Befehl Speichern oder..." nicht angehakt sein.

Leider bin ich zu blöd, eine pdf Datei einzufügen, deshalb bei Bedarf den Code per Drag & Drop in eine .jsx Textdatei kopieren. Noch ein Nachtrag: Inzwischen bin ich wieder in der Lage, eine Datei anzuhängen. Herunterladen und .pdf entfernen. Es gibt zusätzlich noch eine Variable subPathPrefix, die den neu angelegten Unterordnern hinzugefügt wird. In dem Codebeispiel heißen die Ordner jetzt PS-6, PS-7 usw. Soll kein Prefix davor, Zeile so ändern wie oben bei filePrefix beschrieben. Und bei Dateinamen ohne Punkt endet das Script jetzt vernünftig. Und die SaveOptions wie oben beschrieben sind auch hinzugefügt.

Und wie immer Nutzung auf eigene Gefahr, also vorher testen. (Die Fehlerbehandlung für den Fall Dateiname enthält keinen Punkt funktioniert noch nicht richtig, aber ich glaube, eine Datei ohne Extension kann man in Ps gar nicht öffnen.)
Code:
filePrefix = 'Fertig_';
jpgQualityFrom = 6;
jpgQualityTo = 12;

// JPG Optionen setzen
var jpegOptions = new JPEGSaveOptions();
jpegOptions.embedColorProfile = true;

main();

function main(){

    try {
 
        var aD  = activeDocument;

        // Dateiname erstellen
        var fileName = File.decode(aD.name);
        var n = fileName.lastIndexOf('.');
 
        if (n > 0) {
           fileName = filePrefix + fileName.substr(0, n);
        }
        else {
           alert("Ungültiger Dateiname");
        }
    }
    catch (e) {
        alert('Keine Datei geöffnet');
        return;
    }
 
    // Dokument in verschiedenen Qualitätsstufen speichern
    for (i = jpgQualityFrom; i <= jpgQualityTo; i++) {
 
       folder = mkdir(aD.path, i.toString());
       jpegOptions.quality = i;
       aD.saveAs(new File(folder + '/' + fileName + ".jpg"), jpegOptions, true);
 
    }
 
    aD.close();
}


// neues Verzeichnis anlegen wenn nicht schon vorhanden
function mkdir(path, subPath) {

    var folder = new Folder(path + '/' + subPath);
 
 
    if (!folder.exists) {
       folder.create();
    }
 
    return folder;
}
 

Anhänge

Zuletzt bearbeitet:
WERBUNG
Zurück
Oben Unten