Come dividere il testo in Photoshop?


9

Ho una parola in un livello di testo in Photoshop. Voglio che ogni personaggio si trovi su un livello separato, come posso farlo?


Ho lo stesso problema, ma è per un livello di testo di frase che devo scomporre in parole. Ho bisogno di una scorciatoia perché sono troppi livelli di testo da separare. e ci vorrà del tempo per farlo uno per uno.
jjbly

Risposte:


7
  1. Seleziona lo strumento Testo.
  2. Scrivi la tua lettera
  3. Duplica il livello.
  4. Seleziona il nuovo livello.
  5. Evidenzia la lettera copiata e digita la seconda lettera.
  6. Ripeti se necessario.

A meno che tu non stia rompendo "l'antidisestablishmentarianism", questa è la strada più veloce da percorrere.


9

Questo può essere fatto con funzionalità di scripting.

EDIT : ho aggiornato la mia risposta di seguito dopo aver provato e testato.

  • Apri un editor di testo
  • Copia e incolla il seguente codice in esso
  • Assicurati che qualunque sia il nome del livello di testo corrisponda a quello definito nella riga 20
  • Salva come splitText.jsx
  • Apri con Photoshop. Assicurati anche che il documento a cui desideri applicare questo sia il documento attualmente attivo.

Contenuto di 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;

Quindi sposta i livelli di testo sul culo per favore


2
ps. La risposta di Lauren Ipsum è migliore / più semplice: D
Adam Elsodaney,

1
Stavo cercando come farlo. Complimenti per aver messo insieme questo copione. Lo proverò quando sono vicino a un computer e torno da te. +1!
Moshe,

1
@Adam: grazie. Ti sto dando +1 solo per aver affrontato tutto quello sforzo di scripting. :)
Lauren-Clear-Monica-Ipsum,

2
Non sapevo che Photoshop potesse essere
copiato

@Moshe @Lauren Ipsum grazie, vedrò se riesco a svilupparlo ulteriormente, quindi
pubblicherò

2

Grazie mille Adam Elsodaney per la tua sceneggiatura, è incredibile - Tuttavia, se sei come me e volevi che la sceneggiatura facesse a pezzi le parole e non i personaggi, dovrai modificarle.

Ecco lo stesso script per spezzare le parole:

// 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;

E solo per chiarire (come non sapevo, ho dovuto cercarlo su Google)

  1. Salva questo in un file di testo (vale a dire sul desktop con l'estensione .jsx)
  2. Assicurati che nel tuo Photoshop sia presente un livello di testo textlayere che quel file sia aperto in Photoshop.
  3. Fare doppio clic sul file.
  4. Profitto.

Modifica: per alcuni reson il doppio clic non funziona sempre e, in caso contrario, in photoshp vai su File> Script> Sfoglia e fai doppio clic sul file lì dentro. Inizierà a funzionare.


1
Cordiali saluti, se si var theOriginalTextLayer = thisDocument.artLayers.getByName("textlayer");passa var theOriginalTextLayer = thisDocument.activeLayer;allo script funzionerà su un livello di testo selezionato: non è necessario rinominarlo intextlayer
Sergey Kritskiy

-1

Darò solo il mio penny. Non hai specificato se hai bisogno dei tuoi nuovi livelli come testo modificabile o solo livelli rasterizzati, in quest'ultimo caso puoi:

  1. Rasterizza il tuo livello
  2. Fai una selezione attorno al tuo primo livello
  3. Premi CTRL + MAIUSC + J (o CMD + MAIUSC + J) per tagliare la selezione su un nuovo livello
  4. Ripeti i passaggi 2 e 3 per ogni lettera

Ancora una volta, fallo solo se stai bene con strati rasterizzati. Se hai bisogno di livelli di testo, vai con Lauren Ipsum, perché è probabilmente il modo più veloce.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.