Photoshopでテキストを分解するにはどうすればよいですか?


9

フォトショップのテキストレイヤーに単語があります。各キャラクターを別々のレイヤーに配置したいのですが、どうすればよいですか?


私は同じ問題を抱えていますが、それは私が単語に分解する必要がある文のテキストレイヤー用です。テキストレイヤーが多すぎて分解できないため、ショートカットが必要です。1つ1つ行うには時間がかかります。
jjbly

回答:


7
  1. 文字ツールを選択します。
  2. 文字を入力してください。
  3. レイヤーを複製します。
  4. 新しいレイヤーを選択します。
  5. コピーした文字を強調表示し、2番目の文字を入力します。
  6. 必要に応じて繰り返します。

あなたが「反復興主義」を解体しているのでなければ、これはより速い方法です。


9

これは、スクリプト機能で実行できます。

編集:私が試してテストした後、以下の私の答えを更新しました。

  • テキストエディタを開きます
  • 次のコードをコピーしてそれに貼り付けます
  • テキストレイヤーの名前が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
ps。ローレン・イプサムの答えはより良い/より簡単です:D
アダム・エルソダニー

1
これを行う方法を探していました。このスクリプトをまとめてくれてありがとう。コンピュータの近くにいるときにテストして、返答します。+1!
Moshe

1
@アダム:ありがとう。スクリプト作成のすべての努力を終えただけで、+ 1を差し上げます。:)
ローレン-クリア-モニカ-イプサム

2
私は、Photoshopはjavascriptを使用してスクリプトすることができ知りませんでした
ホレイショ

@Moshe @Lauren Ipsumよろしくお願いします。これをさらに開発できるかどうかを確認し、オンラインでチュートリアルを投稿します
Adam Elsodaney

2

スクリプトを作成してくださったAdam Elsodaney氏に感謝します。すばらしいですね。でも、私と同じように、文字ではなく単語を分解してスクリプトを分解したい場合は、修正する必要があります。

単語を分解する同じスクリプトは次のとおりです。

// 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あり、そのファイルがフォトショップで開いていることを確認してください。
  3. ファイルをダブルクリックします。
  4. 利益。

編集:場合によっては、ダブルクリックが常に機能するとは限らず、機能しない場合は、photoshpで[ファイル]> [スクリプト]> [参照]に移動し、そこにあるファイルをダブルクリックします。走り始めます。


1
ちなみに、スクリプトを変更var theOriginalTextLayer = thisDocument.artLayers.getByName("textlayer");するvar theOriginalTextLayer = thisDocument.activeLayer;と、選択したテキストレイヤーで機能します。名前を変更する必要はありません。textlayer
Sergey Kritskiy

-1

私はペニーを差し上げます。新しいレイヤーが編集可能なテキストとして必要なのか、ラスタライズされたレイヤーとして必要なのかを指定していません。後者の場合、次のことができます。

  1. レイヤーをラスタライズします
  2. 最初のレイヤーの周りで選択を行います
  3. CTRL + SHIFT + J(またはCMD + SHIFT + J)を押して、選択範囲を新しいレイヤーに切り取ります
  4. 文字ごとに手順2と3を繰り返します。

繰り返しますが、これは、ラスタライズされたレイヤーに問題がない場合にのみ行ってください。テキストレイヤーが必要な場合は、おそらくより高速な方法であるため、Lauren Ipsumの回答を使用してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.