¿Cómo separo el texto en Photoshop?

9

Tengo una palabra en una capa de texto en Photoshop. Quiero que cada personaje esté en una capa separada, ¿cómo puedo hacer eso?

Moshe
fuente
Tengo el mismo problema, pero es para una capa de texto de oración que necesito dividir en palabras. Necesito un acceso directo porque hay demasiadas capas de texto para separar. y llevará tiempo hacerlo uno por uno.
jjbly

Respuestas:

7
  1. Seleccione la herramienta Tipo.
  2. Escribe tu carta.
  3. Duplicar la capa.
  4. Selecciona la nueva capa.
  5. Resalte la letra copiada y escriba la segunda letra.
  6. Repita según sea necesario.

A menos que esté rompiendo el "antidisestabilitarismo", este es el camino más rápido.

Lauren-Clear-Monica-Ipsum
fuente
9

Esto se puede hacer con capacidades de secuencias de comandos.

EDITAR : He actualizado mi respuesta a continuación después de haber probado y probado.

  • Abre cualquier editor de texto
  • Copie y pegue el siguiente código en él
  • Asegúrese de que el nombre de la capa de texto coincida con lo definido en la línea 20
  • Guardar como splitText.jsx
  • Abrir con Photoshop. También asegúrese de que el documento al que desea aplicar esto sea el documento actualmente activo.

Contenido de 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;

Luego mueve las capas de texto sobre el culo por favor

Adam Elsodaney
fuente
2
PD. La respuesta de Lauren Ipsum es mejor / más fácil: D
Adam Elsodaney
1
Estaba buscando cómo hacer esto. Felicitaciones por armar este guión. Lo probaré cuando esté cerca de una computadora y me comunicaré contigo. +1!
Moshe
1
@ Adam: gracias. Te doy +1 solo por pasar por todo ese esfuerzo de scripting. :)
Lauren-Clear-Monica-Ipsum
2
No sabía photoshop podría ser escrito usando Javascript
Horatio
@Moshe @Lauren Ipsum gracias, voy a ver si puedo desarrollar esto más adelante, luego publicaré un tutorial en línea
Adam Elsodaney
2

Muchas gracias Adam Elsodaney por tu guión. Es increíble. Sin embargo, si eres como yo y querías que el guión separara las palabras y no los caracteres, tendrás que modificarlo.

Aquí está el mismo guión para separar las palabras:

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

Y solo para aclarar (como no sabía, tenía que buscarlo en google)

  1. Guarde esto en un archivo de texto (es decir, en su escritorio con la extensión .jsx)
  2. Asegúrese de que haya una capa de texto en su photoshop nombrada textlayery que ese archivo esté abierto en photoshop.
  3. Haz doble clic en el archivo.
  4. Lucro.

Editar: para algunos reson, hacer doble clic no siempre funciona, y si no funciona, en photoshp vaya a Archivo> Scripts> Examinar y haga doble clic en el archivo allí. Comenzará a correr.

Chud37
fuente
1
Para su información, si cambia var theOriginalTextLayer = thisDocument.artLayers.getByName("textlayer");al var theOriginalTextLayer = thisDocument.activeLayer;guión funcionará en una capa de texto seleccionada: no es necesario cambiarle el nombre atextlayer
Sergey Kritskiy
-1

Solo daré mi centavo. No especificó si necesita sus nuevas capas como texto editable o simplemente capas rasterizadas, en el último caso puede:

  1. Rasteriza tu capa
  2. Haga una selección alrededor de su primera capa
  3. Presione CTRL + MAYÚS + J (o CMD + MAYÚS + J) para cortar la selección a una nueva capa
  4. Repita los pasos 2 y 3 para cada letra.

Nuevamente, haga esto solo si está de acuerdo con tener capas rasterizadas. Si necesita capas de texto, vaya con la respuesta Lauren Ipsum, ya que probablemente sea la forma más rápida.

Luca De Nardi
fuente