• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] Photoshop Script Hilfe

Bardioc

New member
Hallo zusammen,
ich bin Fotograf und habe leider noch relativ wenig Ahnung von Java Script, benötige es aber für ein Script in Photoshop welches den Dateinamen als Textebene einfügt. Im Internet hab ich schon ein funktionierendes Script gefunden und noch ein paar Formatierungen für den eingefügten Text hinzugefügt.
Was mit jetzt noch fehlt ist die Funktion das immer das erste Wort incl. Leerzeichen danach gelöscht wird.
Es handelt sich immer um Namen! z.B.: Mustermann Max
Aus Mustermann Max möchte ich nur Max machen.
Leider hab ich noch keinen funktionierenden Codeschnipsel gefunden den ich einbauen kann...
Für Hilfe wäre ich echt dankbar!!
LG, Bardioc

Code:
// this script is a variation of the script addTimeStamp.js that is installed with PH7

if ( documents.length > 0 )
{
   var originalDialogMode = app.displayDialogs;
   app.displayDialogs = DialogModes.ERROR;
   var originalRulerUnits = preferences.rulerUnits;
   preferences.rulerUnits = Units.PIXELS;
  
   try
   {
       var docRef = activeDocument;

       // Now create a text layer at the front
       var myLayerRef = docRef.artLayers.add();
       myLayerRef.kind = LayerKind.TEXT;
       myLayerRef.name = "Dateiname";
      
       var myTextRef = myLayerRef.textItem;
      
       // strip the extension off
       var fileNameNoExtension = docRef.name;
       fileNameNoExtension = fileNameNoExtension.split( "." );
       if ( fileNameNoExtension.length > 1 ) {
           fileNameNoExtension.length--;
       }
       fileNameNoExtension = fileNameNoExtension.join(".");
          
       myTextRef.contents = fileNameNoExtension;
      
       // off set the text to be in the middle
       myTextRef.position = new Array( docRef.width / 2, docRef.height / 2 );
       myTextRef.size = 45;
         myTextRef.font = "Harrington";
         myTextRef.justification = Justification.CENTER;        
        
         var newColor = new SolidColor();
         newColor.rgb.red = 198;
         newColor.rgb.green = 190;
         newColor.rgb.blue = 181;
         myTextRef.color = newColor;

   }
   catch( e )
   {
       // An error occurred. Restore ruler units, then propagate the error back
       // to the user
       preferences.rulerUnits = originalRulerUnits;
        app.displayDialogs = originalDialogMode;
       throw e;
   }

   // Everything went Ok. Restore ruler units
   preferences.rulerUnits = originalRulerUnits;
   app.displayDialogs = originalDialogMode;
}
else
{
   alert( "You must have a document open to add the filename!" );
}
 
Zuletzt bearbeitet:
würde ich in ein array spliten und auf den gewünschten teil zugreifen. was soll denn aus "Thomas Götz von Berlichingen" werden?
 
@mikdoe
[ich möchte, ]das immer das erste Wort incl. Leerzeichen danach gelöscht wird.


Und hier die Lösung:
Code:
function splitten(text){
  return text.split(" ").splice(1).join(" ");
}

Erklärung:
Code:
text: "Mustermann Max Ente"
text.split(" "): ["Mustermann", "Max", "Ente"]
text.split(" ").splice(1): ["Max", "Ente"]
text.split(" ").splice(1).join(" "): "Max Ente"
 
Ich würde das ja anders machen:
Code:
return text.substring(text.indexOf(" ") + 1);
Ist schneller und verhält sich meiner Meinung nach sinnvoller, wenn gar kein Leerzeichen vorkommt.
 
Zurück
Oben