Bagaimana cara memisahkan teks di Photoshop?

9

Saya punya kata di lapisan teks di photoshop. Saya ingin setiap karakter berada di layer terpisah, bagaimana saya bisa melakukan itu?

Moshe
sumber
Saya memiliki masalah yang sama tetapi untuk lapisan teks kalimat yang harus saya uraikan menjadi kata-kata. Saya perlu jalan pintas karena terlalu banyak lapisan teks untuk dipecah. dan akan butuh waktu untuk melakukannya satu per satu.
jjbly

Jawaban:

7
  1. Pilih alat Type.
  2. Ketikkan surat Anda.
  3. Gandakan layer.
  4. Pilih layer baru.
  5. Sorot surat yang disalin dan ketikkan huruf kedua.
  6. Ulangi sesuai kebutuhan.

Kecuali Anda memecah "antidisestablishmentarianism," ini adalah cara tercepat untuk pergi.

Lauren-Clear-Monica-Ipsum
sumber
9

Ini dapat dilakukan dengan kemampuan scripting.

EDIT : Saya telah memperbarui jawaban saya di bawah ini setelah mencoba dan menguji.

  • Buka editor teks apa pun
  • Salin dan tempel kode berikut ke dalamnya
  • Pastikan apa pun nama layer teks cocok dengan apa yang didefinisikan pada baris 20
  • Simpan sebagai splitText.jsx
  • Buka dengan Photoshop. Pastikan juga dokumen yang ingin Anda terapkan ini adalah dokumen yang saat ini aktif.

Isi dari 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;

Kemudian pindahkan layer teks tentang pantat Anda

Adam Elsodaney
sumber
2
ps. Jawaban Lauren Ipsum lebih baik / lebih mudah: D
Adam Elsodaney
1
Saya mencari cara untuk melakukan ini. Kudos untuk menyatukan skrip ini. Saya akan mengujinya ketika saya berada di dekat komputer dan kembali kepada Anda. +1!
Moshe
1
@Adam: terima kasih. Saya memberi Anda +1 hanya untuk melalui semua upaya scripting. :)
Lauren-Clear-Monica-Ipsum
2
Saya tidak tahu photoshop bisa ditulis menggunakan javascript
horatio
@ Moshe @Lauren Ipsum terima kasih, saya akan melihat apakah saya dapat mengembangkan ini lebih lanjut, kemudian memposting tutorial online
Adam Elsodaney
2

Terima kasih banyak Adam Elsodaney untuk skrip Anda, Sungguh menakjubkan - Namun jika Anda seperti saya dan ingin skrip untuk memisahkan kata-kata dan bukan karakter Anda harus memodifikasinya.

Berikut adalah skrip yang sama untuk memecah kata-kata:

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

Dan hanya untuk mengklarifikasi (Karena saya tidak tahu, harus google)

  1. Simpan ini ke file teks (Yaitu ke desktop Anda dengan ekstensi .jsx)
  2. Pastikan ada lapisan teks di photoshop Anda bernama textlayerdan bahwa file itu terbuka di photoshop.
  3. Klik dua kali file tersebut.
  4. Keuntungan.

Sunting: Untuk beberapa klik ganda reson tidak selalu berfungsi, dan jika tidak, Di photoshp buka File> Script> Browse dan klik dua kali file di sana. Itu akan mulai berjalan.

Bab 37
sumber
1
FYI, jika Anda mengubah var theOriginalTextLayer = thisDocument.artLayers.getByName("textlayer");ke var theOriginalTextLayer = thisDocument.activeLayer;script akan bekerja pada layer teks yang dipilih: tidak perlu mengganti nama ketextlayer
Sergey Kritskiy
-1

Saya hanya akan memberikan uang saya. Anda tidak menentukan apakah Anda memerlukan layer baru sebagai teks yang dapat diedit atau hanya layer yang di-raster, dalam kasus yang terakhir Anda dapat:

  1. Rasterize layer Anda
  2. Tentukan pilihan di sekitar lapisan pertama Anda
  3. Tekan CTRL + SHIFT + J (Atau CMD + SHIFT + J) untuk memotong seleksi ke layer baru
  4. Ulangi langkah 2 dan 3 untuk setiap huruf

Sekali lagi, lakukan ini hanya jika Anda baik-baik saja dengan memiliki layer raster. Jika Anda perlu lapisan teks pergi dengan jawaban Lauren Ipsum karena mungkin cara yang lebih cepat.

Luca De Nardi
sumber