Wie zerlege ich Text in Photoshop?


9

Ich habe ein Wort in einer Textebene in Photoshop. Ich möchte, dass sich jeder Charakter auf einer separaten Ebene befindet. Wie kann ich das tun?


Ich habe das gleiche Problem, aber es ist für eine Satztextebene, die ich in Wörter zerlegen muss. Ich brauche eine Verknüpfung, weil es zu viele Textebenen gibt, um sie auseinanderzubrechen. und es wird einige Zeit dauern, es eins nach dem anderen zu tun.
jjbly

Antworten:


7
  1. Wählen Sie das Textwerkzeug.
  2. Geben Sie Ihren Brief ein.
  3. Dupliziere die Ebene.
  4. Wählen Sie die neue Ebene aus.
  5. Markieren Sie den kopierten Buchstaben und geben Sie den zweiten Buchstaben ein.
  6. Bei Bedarf wiederholen.

Dies ist der schnellere Weg, es sei denn, Sie brechen den "Antidisestablishmentarianismus" auf.


9

Dies kann mit Skriptfunktionen erfolgen.

EDIT : Ich habe meine Antwort unten aktualisiert, nachdem ich mich bewährt habe.

  • Öffnen Sie einen beliebigen Texteditor
  • Kopieren Sie den folgenden Code und fügen Sie ihn ein
  • Stellen Sie sicher, dass der Name der Textebene mit der Definition in Zeile 20 übereinstimmt
  • Speichern Sie als splitText.jsx
  • Öffnen Sie mit Photoshop. Stellen Sie außerdem sicher, dass das Dokument, auf das Sie dies anwenden möchten, das aktuell aktive Dokument ist.

Inhalt von splitText.jsx

// enable double clicking from the Macintosh Finder or the Windows Explorer
#target photoshop

// in case we double clicked the file
app.bringToFront();

// debug level: 0-2 (0:disable, 1:break on error, 2:break at beginning)
// $.level = 0;
// debugger; // launch debugger on next line

var strtRulerUnits = app.preferences.rulerUnits;
var strtTypeUnits = app.preferences.typeUnits;

app.preferences.rulerUnits = Units.PIXELS;
app.preferences.typeUnits = TypeUnits.POINTS;

var thisDocument = app.activeDocument;

// USE THIS LINE TO GRAB TEXT FROM EXISTING LAYER
var theOriginalTextLayer = thisDocument.artLayers.getByName("NAME-OF-LAYER");
var theTextToSplit = theOriginalTextLayer.textItem.contents;

// OR USE THIS LINE TO DEFINE YOUR OWN
// var theTextToSplit = "Hello";

// suppress all dialogs
app.displayDialogs = DialogModes.NO;

//  the color of the text as a numerical rgb value
var textColor = new SolidColor;
textColor.rgb.red = 0;
textColor.rgb.green = 0;
textColor.rgb.blue = 0;

var fontSize = 120;         // font size in points
var textBaseline = 480;     // the vertical distance in pixels between the top-left corner of the document and the bottom-left corner of the text-box

for(a=0; a<theTextToSplit.length; a++){ 
// this loop will go through each character

    var newTextLayer = thisDocument.artLayers.add();        // create new photoshop layer
        newTextLayer.kind = LayerKind.TEXT;             // set the layer kind to be text
    //  newTextLayer.name = textInLayer.charAt(a);

    var theTextBox = newTextLayer.textItem;             // edit the text
        theTextBox.font = "Arial";                      // set font
        theTextBox.contents = theTextToSplit.charAt(a); // Put each character in the text
        theTextBox.size = fontSize;                           // set font size
    var textPosition = a*(fontSize*0.7);

        theTextBox.position = Array(textPosition, textBaseline);                // apply the bottom-left corner position for each character
        theTextBox.color = textColor;

};

/* Reset */

app.preferences.rulerUnits = strtRulerUnits;
app.preferences.typeUnits = strtTypeUnits;
docRef = null;
textColor = null;
newTextLayer = null;

Dann verschieben Sie die Textebenen bitte um Arsch


2
ps. Lauren Ipsums Antwort ist besser / einfacher: D
Adam Elsodaney

1
Ich habe gesucht, wie das geht. Ein großes Lob für die Zusammenstellung dieses Skripts. Ich werde es testen, wenn ich in der Nähe eines Computers bin und mich bei Ihnen melden. +1!
Moshe

1
@ Adam: Danke. Ich gebe dir +1, nur weil du all diese Mühe mit Skripten gemacht hast. :)
Lauren-Clear-Monica-Ipsum

2
Ich wusste nicht, dass Photoshop mit Javascript geschrieben werden kann
Horatio

@ Moshe @ Lauren Ipsum danke, ich werde sehen, ob ich dies weiterentwickeln kann, dann ein Tutorial online stellen
Adam Elsodaney

2

Vielen Dank Adam Elsodaney für Ihr Skript. Es ist erstaunlich. Wenn Sie jedoch wie ich sind und möchten, dass das Skript Wörter und keine Zeichen auseinander reißt, müssen Sie es ändern.

Hier ist das gleiche Skript, um Wörter auseinanderzubrechen:

// enable double clicking from the Macintosh Finder or the Windows Explorer
#target photoshop

// in case we double clicked the file
app.bringToFront();

// debug level: 0-2 (0:disable, 1:break on error, 2:break at beginning)
// $.level = 0;
// debugger; // launch debugger on next line

var strtRulerUnits = app.preferences.rulerUnits;
var strtTypeUnits = app.preferences.typeUnits;

app.preferences.rulerUnits = Units.PIXELS;
app.preferences.typeUnits = TypeUnits.POINTS;

var thisDocument = app.activeDocument;

// USE THIS LINE TO GRAB TEXT FROM EXISTING LAYER
var theOriginalTextLayer = thisDocument.activeLayer;
var theTextToSplit = theOriginalTextLayer.textItem.contents;

// OR USE THIS LINE TO DEFINE YOUR OWN
// var theTextToSplit = "Hello";

// suppress all dialogs
app.displayDialogs = DialogModes.NO;

//  the color of the text as a numerical rgb value
var textColor = new SolidColor;
textColor.rgb.red = 0;
textColor.rgb.green = 0;
textColor.rgb.blue = 0;

var fontSize = 120;         // font size in points
var textBaseline = 480;     // the vertical distance in pixels between the top-left corner of the document and the bottom-left corner of the text-box


var words = theTextToSplit.split(" ");

for(a=0; a < words.length; a++){ 
// this loop will go through each character

    var newTextLayer = thisDocument.artLayers.add();    // create new photoshop layer
        newTextLayer.kind = LayerKind.TEXT;             // set the layer kind to be text

    var theTextBox = newTextLayer.textItem;             // edit the text
        theTextBox.font = "Arial";                      // set font
        theTextBox.contents = words[a];                 // Put each character in the text
        theTextBox.size = fontSize;                     // set font size
    var textPosition = a*(fontSize*0.7);

        theTextBox.position = Array(textPosition, textBaseline);    // apply the bottom-left corner position for each character
        theTextBox.color = textColor;

};

/* Reset */

app.preferences.rulerUnits = strtRulerUnits;
app.preferences.typeUnits = strtTypeUnits;
docRef = null;
textColor = null;
newTextLayer = null;

Und nur zur Klarstellung (Wie ich nicht wusste, musste ich googeln)

  1. Speichern Sie dies in einer Textdatei (dh auf Ihrem Desktop mit der Erweiterung .jsx)
  2. Stellen Sie sicher textlayer, dass in Ihrem Photoshop eine Textebene mit dem Namen vorhanden ist und dass diese Datei in Photoshop geöffnet ist.
  3. Doppelklicken Sie auf die Datei.
  4. Profitieren.

Bearbeiten: Bei einigen Resonanzen funktioniert ein Doppelklick nicht immer. Wenn dies nicht der Fall ist, gehen Sie in Photoshp zu Datei> Skripte> Durchsuchen und doppelklicken Sie dort auf die Datei. Es wird anfangen zu rennen.


1
Zu Ihrer Information, wenn Sie var theOriginalTextLayer = thisDocument.artLayers.getByName("textlayer");zum var theOriginalTextLayer = thisDocument.activeLayer;Skript wechseln , funktioniert dies auf einer ausgewählten textlayer
Textebene

-1

Ich gebe nur meinen Penny. Sie haben nicht angegeben, ob Sie Ihre neuen Ebenen als bearbeitbaren Text oder nur als gerasterte Ebenen benötigen. Im letzteren Fall können Sie:

  1. Rastere deine Ebene
  2. Treffen Sie eine Auswahl um Ihre erste Ebene
  3. Drücken Sie STRG + UMSCHALT + J (oder CMD + UMSCHALT + J), um die Auswahl auf eine neue Ebene zu schneiden
  4. Wiederholen Sie die Schritte 2 und 3 für jeden Buchstaben

Wiederholen Sie dies nur, wenn Sie mit gerasterten Ebenen einverstanden sind. Wenn Sie Textebenen benötigen, wählen Sie Lauren Ipsum, da dies wahrscheinlich der schnellere Weg ist.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.