Як розбити текст у Photoshop?


9

Я маю слово в текстовому шарі у фотошопі. Я хочу, щоб кожен персонаж був на окремому шарі, як це зробити?


У мене те саме питання, але це для тексту текст речення, який мені потрібно розбити на слова. Мені потрібен ярлик, тому що його занадто багато шарів тексту, щоб розбитись. і знадобиться час, щоб це зробити по черзі.
jjbly

Відповіді:


7
  1. Виберіть інструмент "Тип".
  2. Введіть лист.
  3. Дублювати шар.
  4. Виберіть новий шар.
  5. Виділіть скопійований лист і введіть другу літеру.
  6. Повторіть за потребою.

Якщо ви не порушите "антидестабільшметаріанство", це швидший шлях.


9

Це можна зробити за допомогою сценаріїв.

EDIT : Я оновив свою відповідь нижче, спробувавши тестування.

  • Відкрийте будь-який текстовий редактор
  • Скопіюйте та вставте в нього наступний код
  • Переконайтесь, що незалежно від назви текстового шару відповідає тому, що визначено у рядку 20
  • Зберегти як splitText.jsx
  • Відкрити за допомогою Photoshop. Також переконайтеся, що документ, до якого потрібно застосувати це, є поточно активним документом.

Зміст 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;

Потім перемістіть текстові шари про дупу, будь ласка


2
пс. Відповідь Лорен Іпсум краще / простіше: D
Адам Елсодані,

1
Я шукав, як це зробити. Kudos для складання цього сценарію. Я перевірю це, коли я біля комп’ютера і повернусь до вас. +1!
Моше

1
@Адам: дякую. Я даю вам +1 лише для того, щоб пережити всі ці зусилля сценаріїв. :)
Лорен-Ясний-Моніка-Іпсум

2
Я не знав, що фотошоп може бути скриптований за допомогою javascript
horatio

@Moshe @Lauren Ipsum спасибі, я побачу, чи зможу я розвинути це далі, а потім опублікуйте підручник в Інтернеті
Адам Елсодані,

2

Дякую тобі Адаму Елсодані за твій сценарій, це дивовижно - Однак якщо ти такий, як я, і хотів, щоб сценарій розривав слова, а не символи, то доведеться його змінювати.

Ось той самий сценарій, щоб розділити слова:

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

І просто для уточнення (як я не знав, довелося гуглювати його)

  1. Збережіть це у текстовому файлі (тобто на робочому столі з розширенням .jsx)
  2. Переконайтеся, що у вашому фотошопі є текстовий шар textlayerта чи цей файл відкритий у Photoshop.
  3. Двічі клацніть файл.
  4. Прибуток.

Редагування: Для деяких повторних клавіш подвійне клацання не працює завжди, а якщо це не так, у Photoshp перейдіть до Файл> Сценарії> Огляд і двічі клацніть файл там. Він почне працювати.


1
FYI, якщо ви зміните var theOriginalTextLayer = thisDocument.artLayers.getByName("textlayer");в var theOriginalTextLayer = thisDocument.activeLayer;сценарії буде працювати на обраному текстовому шарі: немає необхідності перейменувати йогоtextlayer
Сергій Крицький

-1

Я просто віддам свою копійку. Ви не вказали, чи потрібні вам нові шари як текст, який можна редагувати, або просто растровані шари, в останньому випадку ви можете:

  1. Розподіліть шар
  2. Зробіть вибір навколо першого шару
  3. Натисніть CTRL + SHIFT + J (або CMD + SHIFT + J), щоб вирізати виділення на новий шар
  4. Повторіть крок 2 і 3 для кожної літери

Знову ж таки, робіть це лише в тому випадку, якщо у вас все в порядку з растровими шарами. Якщо вам потрібні шари тексту, перейдіть з відповіддю Лорен Іпсум, оскільки це, мабуть, швидший шлях.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.