Saya punya kata di lapisan teks di photoshop. Saya ingin setiap karakter berada di layer terpisah, bagaimana saya bisa melakukan itu?
Saya punya kata di lapisan teks di photoshop. Saya ingin setiap karakter berada di layer terpisah, bagaimana saya bisa melakukan itu?
Jawaban:
Kecuali Anda memecah "antidisestablishmentarianism," ini adalah cara tercepat untuk pergi.
Ini dapat dilakukan dengan kemampuan scripting.
EDIT : Saya telah memperbarui jawaban saya di bawah ini setelah mencoba dan menguji.
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
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)
.jsx
)textlayer
dan bahwa file itu terbuka di photoshop.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.
var theOriginalTextLayer = thisDocument.artLayers.getByName("textlayer");
ke var theOriginalTextLayer = thisDocument.activeLayer;
script akan bekerja pada layer teks yang dipilih: tidak perlu mengganti nama ketextlayer
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:
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.