Comment séparer du texte dans Photoshop?

9

J'ai un mot dans un calque de texte dans photoshop. Je veux que chaque personnage soit sur un calque séparé, comment faire?

Moshe
la source
J'ai le même problème mais c'est pour une couche de texte de phrase que j'ai besoin de décomposer en mots. J'ai besoin d'un raccourci car il y a trop de couches de texte pour se séparer. et il faudra du temps pour le faire un par un.
jjbly

Réponses:

7
  1. Sélectionnez l'outil Type.
  2. Tapez votre lettre.
  3. Dupliquez le calque.
  4. Sélectionnez le nouveau calque.
  5. Mettez en surbrillance la lettre copiée et tapez la deuxième lettre.
  6. Répétez au besoin.

À moins que vous ne brisiez «l'anti-stabilisationnalisme», c'est la façon la plus rapide d'aller.

Lauren-Clear-Monica-Ipsum
la source
9

Cela peut être fait avec des capacités de script.

EDIT : J'ai mis à jour ma réponse ci-dessous après avoir essayé et testé.

  • Ouvrez n'importe quel éditeur de texte
  • Copiez et collez le code suivant dedans
  • Assurez-vous que le nom du calque de texte correspond à ce qui est défini à la ligne 20
  • Enregistrer sous splitText.jsx
  • Ouvrez avec Photoshop. Assurez-vous également que le document auquel vous souhaitez l'appliquer est le document actuellement actif.

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

Ensuite, déplacez les calques de texte sur le cul, s'il vous plaît

Adam Elsodaney
la source
2
ps. La réponse de Lauren Ipsum est meilleure / plus facile: D
Adam Elsodaney
1
Je cherchais comment faire ça. Félicitations pour avoir assemblé ce script. Je le testerai quand je serai près d'un ordinateur et je vous répondrai. +1!
Moshe
1
@Adam: merci. Je vous donne +1 juste pour avoir traversé tous ces efforts de script. :)
Lauren-Clear-Monica-Ipsum
2
Je ne savais pas que Photoshop pouvait être scripté en utilisant javascript
horatio
@Moshe @Lauren Ipsum merci, je vais voir si je peux développer cela plus loin, puis publier un tutoriel en ligne
Adam Elsodaney
2

Merci beaucoup Adam Elsodaney pour votre script, c'est incroyable - Cependant, si vous êtes comme moi et que vous vouliez que le script déchire les mots et non les personnages, vous devrez le modifier.

Voici le même script pour séparer les mots:

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

Et juste pour clarifier (comme je ne savais pas, je devais google)

  1. Enregistrez-le dans un fichier texte (c'est-à-dire sur votre bureau avec l'extension .jsx)
  2. Assurez-vous qu'il y a un calque de texte dans votre photoshop nommé textlayeret que ce fichier est ouvert dans photoshop.
  3. Double-cliquez sur le fichier.
  4. Profit.

Modifier: Pour certains résons, le double-clic ne fonctionne pas toujours, et si cela ne fonctionne pas, dans photoshp, allez dans Fichier> Scripts> Parcourir et double-cliquez sur le fichier. Ça va commencer à fonctionner.

Chud37
la source
1
Pour info, si vous passez var theOriginalTextLayer = thisDocument.artLayers.getByName("textlayer");au var theOriginalTextLayer = thisDocument.activeLayer;script fonctionnera sur un calque de texte sélectionné: pas besoin de le renommertextlayer
Sergey Kritskiy
-1

Je vais juste donner mon sou. Vous n'avez pas spécifié si vous avez besoin de vos nouveaux calques sous forme de texte modifiable ou simplement de calques pixellisés, dans ce dernier cas, vous pouvez:

  1. Pixellisez votre calque
  2. Faites une sélection autour de votre première couche
  3. Appuyez sur CTRL + MAJ + J (ou CMD + MAJ + J) pour couper la sélection dans un nouveau calque
  4. Répétez les étapes 2 et 3 pour chaque lettre

Encore une fois, ne faites cela que si vous êtes d'accord avec les couches tramées. Si vous avez besoin de couches de texte, allez avec la réponse de Lauren Ipsum car c'est probablement le moyen le plus rapide.

Luca De Nardi
la source