[GastForen Programmierung/Entwicklung AppleScript Photoshop CS2/CS3 save for web options

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Photoshop CS2/CS3 save for web options

Anonym
Beiträge gesamt: 22827

2. Apr 2008, 16:26
Beitrag # 1 von 8
Bewertung:
(1978 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,

ich habe momentan ein paar Problemchen mit einem Script.
Ich lasse einen Haufen von Bildern per Photoshop umrechnen und exportiere Sie für's Web.
Hier das Snippet:

Code
set DesktopPath to path to desktop as Unicode text 
tell application "Adobe Photoshop CS3"
    activate
    set display dialogs to never
    set WebExportOptions to {class:save for web export options, web format:JPEG, quality:60}
   
    try
        set docRef to current document
        set docName to name of docRef
        set docBaseName to (docName as string)
        set AppleScript's text item delimiters to {"."}
        set Bildname to (text item 1 of docName)
       
        tell docRef
            export in file (DesktopPath & Bildname & ".jpg") as save for web with options WebExportOptions
        end tell
    end try
end tell


[b]1. Problem:
Leider wird bei Bildern mit einem Bildnamen+Suffix länger als 31 Zeichen der Rest abgeschnitten und für die letzten beiden Zeichen ein "#0" eingefügt, anstatt des ".jpg".
Ist es möglich dass der Original-Dateiname erhalten bleibt – oder wenigstens das korrekte Suffix angehängt wird???


[b]2. Problem:
Es sind auch Bilder zu verarbeiten, die sich im Bildnamen nur anhand des Suffixes unterscheiden. Also beispielsweise Bild.eps und Bild.psd.
Beim Ausführen des Scripts mit solchen Bildern fragt Photoshop per Dialogfenster nach "Dateien ersetzen" -> "Ersetzen" oder "Abbrechen".
Kann dieses PopUp-Fenster übergangen werden und die Datei automatisch ersetzt werden?


[b]3. Problem:
Das Script möchte ich gerne auch an einem anderen Rechner in Photoshop CS2 laufen lassen.
Dafür muss ich im Snippet laut Funktionsverzichnis von PS CS2 die WebExportOptions ändern in
Code
{class:save for web export options, as:JPEG, quality:60} 

Allerdings erhalte ich beim kompilieren einen Syntaxfehler: Es wurde „Variablenname, Klassenname oder Eigenschaft“ erwartet, aber ein „„as““ wurde gefunden.
Ich kann das Snippet dann auch nicht sichern.

Im Netz hab ich noch einen Woraround gefunden, der zwar das einmalige kompilieren ermöglicht, allerdings nicht das Speichern des Snippets:
Code
{class:save for web export options, «class fltp»:JPEG, quality:60} 



Weiß jemand Rat?
X

Photoshop CS2/CS3 save for web options

TMA
Beiträge gesamt: 384

3. Apr 2008, 05:46
Beitrag # 2 von 8
Beitrag ID: #422368
Bewertung:
(1977 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi Thomas,

Problem 1:
Das ist leider nicht möglich. Web-Export ist auf 31 Zeichen begrenzt. Vorher den Namen merken und nachher über den Finder umbenennen.

Problem 2:
Auch das kann man beim Web-Export nicht umgehen. Über den Finder lösen.

Problem 3:
Kann ich grad nichts zu sagen, wir machen unseren Web-Export via Java-Code im Apple-Script. Da gab es keine Probleme beim Umstieg von CS2 nach CS3.

Mögliche Lösung für die ersten beiden Probleme:
Benutze einen temporären Zwischenordner wo immer nur eine Datei liegen kann.
Also Web-Export in diesen temp-Ordner, File ggf. per Finder umbenennen, dann per Finder in den richtigen Ordner kopieren/ersetzen, nächstes Bild.

Gruß
TMA


als Antwort auf: [#422367]

Photoshop CS2/CS3 save for web options

TMA
Beiträge gesamt: 384

3. Apr 2008, 05:54
Beitrag # 3 von 8
Beitrag ID: #422369
Bewertung:
(1977 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
nochmal zu Problem 2:
da dir die Zieldatei für den Web-Export ja bekannt ist, kannst du natürlich versuchen diese vorher per Finder zu löschen:
Code
set DesktopPath to path to desktop as Unicode text 
tell application "Adobe Photoshop CS3"
    activate
    set display dialogs to never
    set WebExportOptions to {class:save for web export options, web format:JPEG, quality:60}
   
    try
        set docRef to current document
        set docName to name of docRef
        set docBaseName to (docName as string)
        set AppleScript's text item delimiters to {"."}
        set Bildname to (text item 1 of docName)
       
        try
            tell application "Finder" to delete file (DesktopPath & Bildname & ".jpg")
        end try
       
        tell docRef
            export in file (DesktopPath & Bildname & ".jpg") as save for web with options WebExportOptions
        end tell
    end try
end tell


Gruß
TMA


als Antwort auf: [#422367]

Photoshop CS2/CS3 save for web options

Hans Haesler
  
Beiträge gesamt: 5816

3. Apr 2008, 06:00
Beitrag # 4 von 8
Beitrag ID: #422370
Bewertung:
(1977 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Thomas,

eine Lösung des ersten Problems: Im Code einen Test einbauen, welcher die Länge des Namens prüft und diesen, falls notwendig, auf die ersten 27 Zeichen kürzt.
---
set Bildname to (text item 1 of docName)
if (count of Bildname) is greater than 27 then
   set Bildname to text 1 thru 27 of Bildname
end if
---

Übrigens 1: Mit der benutzten Methode gelingt das Ausziehen des kompletten Bildnamens nur, wenn die Namen keine Punkte aufweisen.

Übrigens 2: Die Variable 'docBaseName' wird nicht benutzt.

Gruss, Hans


als Antwort auf: [#422367]

Photoshop CS2/CS3 save for web options

Anonym
Beiträge gesamt: 22827

3. Apr 2008, 08:18
Beitrag # 5 von 8
Beitrag ID: #422371
Bewertung:
(1977 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Jau, super.
Danke euch beiden!

Die beiden Schnipsel konnte ich doch perfekt gebrauchen.
Hab' sie schon "verwurstet"! ;)
Ich könnte auch die Dateien durch den Finder im Anschluss an den WebExport in den Original-Dateinamen umbenennen, allerdings lasse ich das zur Sicherheit und systemübergreifenden Kompatibilität lieber weg und verzichte auf den vollständigen Dateinamen.

Gibt es denn auch noch eine Lösung für das Problem des WebExports in CS2?


als Antwort auf: [#422367]

Photoshop CS2/CS3 save for web options

TMA
Beiträge gesamt: 384

3. Apr 2008, 08:30
Beitrag # 6 von 8
Beitrag ID: #422372
Bewertung:
(1977 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi Thomas,
versuchs mal hiermit für CS2:
Code
tell application "Adobe Photoshop CS2" 
    tell front document
        set jpgQuali to 80
        set destinationFile to (DesktopPath & Bildname & ".jpg") as string
        do javascript "var id53 = charIDToTypeID( \"Expr\" ); var desc7 = new ActionDescriptor(); var id54 = charIDToTypeID( \"Usng\" );  var desc8 = new ActionDescriptor();  var id55 = charIDToTypeID( \"Op  \" );  var id56 = charIDToTypeID( \"SWOp\" );  var id57 = charIDToTypeID( \"OpSa\" );  desc8.putEnumerated( id55, id56, id57 );  var id58 = charIDToTypeID( \"Fmt \" );  var id59 = charIDToTypeID( \"IRFm\" );  var id60 = charIDToTypeID( \"JPEG\" );  desc8.putEnumerated( id58, id59, id60 );  var id61 = charIDToTypeID( \"Intr\" );  desc8.putBoolean( id61, false );  var id62 = charIDToTypeID( \"Qlty\" );  desc8.putInteger( id62, " & jpgQuali & " );  var id63 = charIDToTypeID( \"QChS\" );  desc8.putInteger( id63, 0 );  var id64 = charIDToTypeID( \"QCUI\" );  desc8.putInteger( id64, 0 );  var id65 = charIDToTypeID( \"QChT\" );  desc8.putBoolean( id65, false );  var id66 = charIDToTypeID( \"QChV\" );  desc8.putBoolean( id66, false );  var id67 = charIDToTypeID( \"Optm\" );  desc8.putBoolean( id67, true );  var id68 = charIDToTypeID( \"Pass\" );  desc8.putInteger( id68, 1 );  var id69 = charIDToTypeID( \"blur\" );  desc8.putDouble( id69, 0.000000 );  var id70 = charIDToTypeID( \"EICC\" );  desc8.putBoolean( id70, false );  var id71 = charIDToTypeID( \"Mtt \" );  desc8.putBoolean( id71, true );  var id72 = charIDToTypeID( \"MttR\" );  desc8.putInteger( id72, 255 );  var id73 = charIDToTypeID( \"MttG\" );  desc8.putInteger( id73, 255 );  var id74 = charIDToTypeID( \"MttB\" );  desc8.putInteger( id74, 255 );  var id75 = charIDToTypeID( \"SHTM\" );  desc8.putBoolean( id75, false );  var id76 = charIDToTypeID( \"SImg\" );  desc8.putBoolean( id76, true );  var id77 = charIDToTypeID( \"SSSO\" );  desc8.putBoolean( id77, false );  var id78 = charIDToTypeID( \"SSLt\" );var list2 = new ActionList();  desc8.putList( id78, list2 );  var id79 = charIDToTypeID( \"DIDr\" );  desc8.putBoolean( id79, false );  var id80 = charIDToTypeID( \"In  \" );  desc8.putPath( id80, new File( \"" & destinationFile & "\" ) ); var id81 = stringIDToTypeID( \"SaveForWeb\" ); desc7.putObject( id54, id81, desc8 );executeAction( id53, desc7, DialogModes.NO );"
    end tell
end tell


Gruß
TMA


als Antwort auf: [#422367]

Photoshop CS2/CS3 save for web options

Anonym
Beiträge gesamt: 22827

3. Apr 2008, 11:29
Beitrag # 7 von 8
Beitrag ID: #422373
Bewertung:
(1977 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
@ TMA
Besten Dank! Funktioniert tadellos.
Allerdings ist mir javascript echt ein böhmisches Dorf. Da ist ja nix mehr selbsterklärend....


als Antwort auf: [#422367]

Photoshop CS2/CS3 save for web options

TMA
Beiträge gesamt: 384

3. Apr 2008, 11:36
Beitrag # 8 von 8
Beitrag ID: #422374
Bewertung:
(1977 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi Thomas,
es gibt das "Scripting Listener"-plugin. Ist bei Photoshop dabei. Der zeichnet alle Aktionen als Java-Aktionen auf. Diese kann man dann auch mit einer kleinen modifizierung aus AppleScript laufen lassen.

Das Thema müsste hier im Forum schon mal behandelt worden sein.

Gruß
TMA


als Antwort auf: [#422367]
X

Aktuell

Web / SEO / Blockchain / Betriebssystem
unsplash_300

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
29.09.2022

IDUGS#85 Press2id

Zoom Meeting
Donnerstag, 29. Sept. 2022, 19.00 - 21.00 Uhr

Vortrag

Kennst du WordPress? Vielleicht. Verwendest du WordPress? Ja, klar! WordPress ist das am weitesten verbreitete System für die Erstellung von Webseiten. Um Webseitenbau soll es auf dieser IDUG aber nicht gehen. Gregor zeigt press2id (github.com/grefel/press2id). Seine Open-Source-Lösung für die Verbindung von Web und InDesign. Richtig gelesen: InDesign liest mithilfe von press2id die Inhalte der WordPress-Webseiten und generiert daraus Zeitschriften, Kataloge, Programmhefte oder Bierdeckel (das zeigen wir natürlich auch!). So wird die „Content First“ Theorie zu einer konkret anwendbaren Praxis, ohne gleich die ganz großen Räder zu drehen. Versprochen: Jeder kann nach der IDUG innerhalb kürzester Zeit Daten von WordPress nach InDesign importieren. Aber Achtung: Prinzipiell kann press2id aus jeder Website, oder besser Contentmanagementsystem (CMS) Daten auslesen und nach InDesign importieren! Spannend, oder? Danach geht es in die Praxis: Stefan hat die Webseite des Parktheater Iserlohn (parktheater-iserlohn.de) gestaltet. Die gedruckten Spielpläne (parktheater-iserlohn.de/interaktive-spielplaene) werden mit press2id realisiert. Wir schauen in den Maschinenraum und zeigen, wie die Lösung des Projekts realisiert wurde.

Nein

Organisator: InDesign Usergroup Stuttgart

Kontaktinformation: Christoph Steffens, E-Mailidug AT satzkiste DOT de

https://idugs85.eventbrite.de/

Von Wordpress nach InDesign
Veranstaltungen
08.11.2022

Frankfurt, Fraport Conference Center
Dienstag, 08. Nov. 2022, 13.30 - 18.00 Uhr

Seminar

Auf der Enfocus World Tour stellen wir Ihnen gemeinsam mit Enfocus die aktuellen Highlights von Enfocus Switch und dem Impressed Workflow Server (IWS) vor. Wir präsentieren Ihnen anhand typischer Aufgabenstellungen in einem modernen Produktionsbetrieb die Möglichkeiten, die Enfocus Switch für die Automatisierung und Standardisierung von Abläufen bietet. Wir haben sowohl für Produktionsverantwortliche als auch technisch Interessierte ein spannendes Programm vorbereitet, bei dem Sie sicherlich viel Neues erfahren werden, welches Sie in Ihrem eigenen Betrieb umsetzen können. Die Veranstaltung bietet darüber hinaus eine hervorragende Möglichkeit, sich mit anderen Anwendern und Workflow-Spezialisten auszutauschen und Antworten auf konkrete Aufgabenstellungen zu erhalten, welche Sie mit Hilfe von Enfocus Switch/IWS umsetzen möchten.

Wir sind jeweils an 2 Tagen in Frankfurt, Hamburg und München vor Ort. Der erste (halbe) Tag richtet sich in erster Linie an Betriebsleiter und Produktionsverantwortliche in Druckereien - ist also weniger technisch orientiert - sondern gibt einen Überblick zu den heutigen Möglichkeiten einer automatisierten Produktion.

Der zweite Tag (Switch Anwender-Treffen) richtet sich an bestehende Switch-Anwender und Administratoren.

Anmeldung und weitere Infos: https://www.impressed.de/schulung.php?c=sDetail&sid=310

Ja

Organisator: Enfocus/Impressed

Kontaktinformation: Silvia Noack, E-Mailsnoack AT impressed DOT de

https://www.impressed.de/schulung.php?c=sDetail&sid=310

Enfocus World Tour 2022