Làm cách nào để tách văn bản trong Photoshop?


9

Tôi có một từ trong một lớp văn bản trong photoshop. Tôi muốn mỗi nhân vật ở trên một lớp riêng biệt, làm thế nào tôi có thể làm điều đó?


Tôi có cùng một vấn đề nhưng đó là một lớp văn bản câu mà tôi cần chia thành các từ. Tôi cần một phím tắt vì quá nhiều lớp văn bản để phá vỡ. và sẽ mất thời gian để làm từng cái một.
jjbly

Câu trả lời:


7
  1. Chọn công cụ Type.
  2. Nhập thư của bạn.
  3. Nhân đôi layer.
  4. Chọn lớp mới.
  5. Đánh dấu chữ cái đã sao chép và gõ chữ cái thứ hai.
  6. Lặp lại khi cần thiết.

Trừ khi bạn phá vỡ "chủ nghĩa chống đối lập", đây là cách nhanh hơn để đi.


9

Điều này có thể được thực hiện với khả năng kịch bản.

EDIT : Tôi đã cập nhật câu trả lời của mình dưới đây đã thử và kiểm tra.

  • Mở bất kỳ trình soạn thảo văn bản
  • Sao chép và dán đoạn mã sau vào nó
  • Đảm bảo tên của lớp văn bản khớp với những gì được xác định trong dòng 20
  • Lưu dưới dạng splitText.jsx
  • Mở bằng Photoshop. Đồng thời đảm bảo rằng tài liệu bạn muốn áp dụng này là tài liệu hiện đang hoạt động.

Nội dung của 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;

Sau đó di chuyển các lớp văn bản về ass bạn vui lòng


2
ps. Câu trả lời của Lauren Ipsum tốt hơn / dễ dàng hơn: D
Adam Elsodaney

1
Tôi đã tìm kiếm làm thế nào để làm điều này. Kudos đã đặt kịch bản này cùng nhau. Tôi sẽ kiểm tra nó khi tôi ở gần máy tính và lấy lại cho bạn. +1!
Moshe

1
@Adam: cảm ơn bạn. Tôi cho bạn +1 chỉ để trải qua tất cả nỗ lực viết kịch bản đó. :)
Lauren-Clear-Monica-Ipsum

2
Tôi không biết photoshop có thể được viết kịch bản bằng cách sử dụng javascript
horatio

@Moshe @Lauren Ipsum cảm ơn, tôi sẽ xem liệu tôi có thể phát triển điều này hơn nữa không, sau đó đăng một hướng dẫn trực tuyến
Adam Elsodaney

2

Cảm ơn Adam Elsodaney rất nhiều vì kịch bản của bạn, Thật tuyệt vời - Tuy nhiên nếu bạn thích tôi và muốn kịch bản xé tan các từ và không phải các nhân vật bạn sẽ phải sửa đổi nó.

Đây là cùng một kịch bản để phá vỡ các từ:

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

Và chỉ để làm rõ (Như tôi không biết, đã phải google nó)

  1. Lưu phần này vào một tệp văn bản (Tức là vào máy tính để bàn của bạn với phần mở rộng .jsx)
  2. Đảm bảo có lớp văn bản trong photoshop của bạn được đặt tên textlayervà tệp đó được mở trong photoshop.
  3. Nhấp đúp chuột vào tập tin.
  4. Lợi nhuận.

Chỉnh sửa: Đối với một số cộng hưởng, nhấp đúp không phải lúc nào cũng hoạt động và nếu không, trong photoshp, hãy chuyển đến Tệp> Tập lệnh> Duyệt và nhấp đúp vào tệp trong đó. Nó sẽ bắt đầu chạy.


1
FYI, nếu bạn thay đổi var theOriginalTextLayer = thisDocument.artLayers.getByName("textlayer");để var theOriginalTextLayer = thisDocument.activeLayer;kịch bản sẽ làm việc trên một lớp văn bản đã chọn: không cần phải đổi tên nó thànhtextlayer
Sergey Kritskiy

-1

Tôi sẽ chỉ đưa xu của tôi. Bạn đã không chỉ định liệu bạn cần các lớp mới của mình dưới dạng văn bản có thể chỉnh sửa hay chỉ là các lớp rasterized, trong trường hợp sau bạn có thể:

  1. Rasterize lớp của bạn
  2. Thực hiện lựa chọn xung quanh lớp đầu tiên của bạn
  3. Nhấn CTRL + SHIFT + J (Hoặc CMD + SHIFT + J) để cắt lựa chọn sang một lớp mới
  4. Lặp lại bước 2 và 3 cho mỗi chữ cái

Một lần nữa, chỉ làm điều này nếu bạn ổn với việc có các lớp rasterized. Nếu bạn cần các lớp văn bản, hãy đi với câu trả lời của Lauren Ipsum vì đây có thể là cách nhanh hơn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.