Photoshop'ta metni nasıl bölebilirim?


9

Photoshop'ta bir metin katmanında bir kelimem var. Her karakterin ayrı bir katmanda olmasını istiyorum, bunu nasıl yapabilirim?


Ben aynı sorunu var ama bu kelimelere ayrılmak için gereken bir cümle metin katmanı içindir. Bir kısayola ihtiyacım var çünkü onun parçalanması için çok fazla metin katmanı. ve bunu tek tek yapmak zaman alacaktır.
jjbly

Yanıtlar:


7
  1. Yazım aracını seçin.
  2. Mektubunuzu yazın.
  3. Katmanı çoğaltın.
  4. Yeni katmanı seçin.
  5. Kopyalanan harfi vurgulayın ve ikinci harfi yazın.
  6. Gerektiği kadar tekrarlayın.

"Antidistablishmentarianism" i bölmediğiniz sürece, bu daha hızlı bir yol.


9

Bu, komut dosyası oluşturma yetenekleriyle yapılabilir.

EDIT : Denedim ve test ettikten sonra aşağıdaki cevabımı güncelledim.

  • Herhangi bir metin düzenleyiciyi açın
  • Aşağıdaki kodu kopyalayıp içine yapıştırın
  • Metin katmanının adının, satır 20'de tanımlanan adla eşleştiğinden emin olun
  • SplitText.jsx olarak kaydet
  • Photoshop ile açın. Ayrıca, bunu uygulamak istediğiniz belgenin o anda etkin olan belge olduğundan emin olun.

SplitText.jsx içeriği

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

Daha sonra göt hakkında metin katmanları taşımak lütfen


2
ps. Lauren
Ipsum'un

1
Bunu nasıl yapacağımı araştırıyordum. Bu senaryoyu bir araya getirdiği için şeref. Bir bilgisayarın yakınındayken test edeceğim ve size geri döneceğim. 1!
Moshe

1
@Adam: teşekkür ederim. Sadece tüm senaryo çalışmalarını yaptığınız için +1 veriyorum. :)
Lauren-Clear-Monica-Ipsum

2
Photoshop'un javascript kullanılarak yazılabileceğini bilmiyordum
horatio

@Moshe @Lauren Ipsum teşekkürler, bunu daha da geliştirip geliştiremeyeceğimi göreceğim, sonra çevrimiçi bir eğitim
yayınlayacağım

2

Senaryonuz için çok teşekkür ederim Adam Elsodaney, İnanılmaz - Ancak siz benim gibiyseniz ve senaryonun karakterleri değil kelimeleri ayırmasını istiyorsanız, onu değiştirmeniz gerekir.

İşte kelimeleri parçalamak için aynı komut dosyası:

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

Ve sadece açıklığa kavuşturmak için (Bilmiyordum, Google'ı kullanmak zorunda kaldım)

  1. Bunu bir metin dosyasına kaydedin (yani masaüstünüzdeki uzantıyla .jsx)
  2. Photoshop'ta adlandırılmış metin katmanı olduğundan textlayerve bu dosyanın photoshop'ta açık olduğundan emin olun .
  3. Dosyaya çift tıklayın.
  4. Kar.

Düzenleme: Bazı reson çift tıklama her zaman işe yaramaz ve eğer işe yaramazsa, photoshp dosyasında Dosya> Scripts> Gözat'a gidin ve oradaki dosyayı çift tıklatın. Koşmaya başlayacak.


1
Komut dosyasına değiştirirseniz var theOriginalTextLayer = thisDocument.artLayers.getByName("textlayer");, var theOriginalTextLayer = thisDocument.activeLayer;seçilen bir metin katmanında çalışır: yeniden adlandırmaya gerek yoktextlayer
Sergey Kritskiy

-1

Sadece kuruşumu vereceğim. Yeni katmanlarınıza düzenlenebilir metin olarak mı yoksa yalnızca rasterleştirilmiş katmanlar olarak mı ihtiyacınız olduğunu belirtmediniz, ikinci durumda şunları yapabilirsiniz:

  1. Katmanınızı rasterleştirin
  2. İlk katmanınızın çevresinde bir seçim yapın
  3. Seçimi yeni bir katmana kesmek için CTRL + ÜST KRKT + J (veya CMD + ÜST KRKT + J) tuşlarına basın
  4. Her harf için 2. ve 3. adımları tekrarlayın

Yine, sadece rasterleştirilmiş katmanlara sahipseniz sorun değil. Metin katmanlarına ihtiyacınız varsa, muhtemelen daha hızlı bir yol olduğu için Lauren Ipsum cevabı ile gidin.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.