Javascript 使用脚本在Photoshop中为特定文本着色

Javascript 使用脚本在Photoshop中为特定文本着色,javascript,vb.net,photoshop-script,Javascript,Vb.net,Photoshop Script,我已经在VB.Net中创建了一段代码来创建一个文本墙 文本保存在.txt文件中。我想做的是在photoshop中复制到一个文本层,只突出显示某些单词(给它一种像图片中那样的“合成”效果) 我已经试过写脚本了,但恐怕我无法得到一个很好的提示来完成我想让它做的事情:/。我想有一个文本框用于“文本墙”,文本框用于颜色的十六进制值,另一个文本框用于选择要突出显示的短语/单词 VB.NET代码: Imports System.Console Imports System.IO Module Module

我已经在VB.Net中创建了一段代码来创建一个文本墙

文本保存在.txt文件中。我想做的是在photoshop中复制到一个文本层,只突出显示某些单词(给它一种像图片中那样的“合成”效果)

我已经试过写脚本了,但恐怕我无法得到一个很好的提示来完成我想让它做的事情:/。我想有一个文本框用于“文本墙”,文本框用于颜色的十六进制值,另一个文本框用于选择要突出显示的短语/单词

VB.NET代码:

Imports System.Console
Imports System.IO
Module Module1
Dim lines As Integer
Dim imported As Integer
Dim wallLines As Integer
Dim wallWords As Integer
Dim sourceName As String
Dim random As New Random
Dim randomLine As Integer
Dim randomPhrase As String

Sub Main()
    WriteLine("         Welcome to Text Wall Generator by E.Skalinski")
    WriteLine("---------------------------------------------------------------------")
    WriteLine("Please enter the name of the .txt file you have saved your text into:")
    WriteLine("---------------------------------------------------------------------")
    WriteLine("       WARNING previous generated walls will be overwritten!")
    WriteLine("    (please make sure each phrase / word is on a seperate line!)")
    sourceName = ReadLine()
    Dim sr As New System.IO.StreamReader(sourceName, FileMode.Open)
    While Not sr.EndOfStream
        sr.ReadLine()
        lines = lines + 1
    End While
    sr.Close()
    Dim sr2 As New System.IO.StreamReader(sourceName, FileMode.Open)
    Dim phrases(lines - 1) As String
    For i = 0 To lines - 1 Step 1
        phrases(i) = sr2.ReadLine()
    Next i
    sr2.Close()
    WriteLine("Imported:")
    For i = 0 To lines - 1
        imported = i
        WriteLine("Line:" & imported & " " & phrases(i))
    Next i
    WriteLine("How many lines would you like to generate?")
    wallLines = ReadLine()
    WriteLine("How many words / phrases per line?")
    wallWords = ReadLine()
    Dim sw As New System.IO.StreamWriter("wall.txt", False)
    Dim wall(wallLines - 1, wallWords - 1) As String
    For i = 0 To wallLines - 1 Step 1
        For j = 0 To wallWords - 1 Step 1
            randomLine = random.Next(0, lines)
            randomPhrase = phrases(randomLine)
            wall(i, j) = randomPhrase
            If j = wallWords - 1 Then
                sw.WriteLine(wall(i, j))
            Else
                sw.Write(wall(i, j) & " ")
            End If
        Next j
    Next i
    sw.Close()
    WriteLine("Generated (file name : wall.txt')")
    ReadLine()
End Sub
Java脚本代码尝试:

doc = app.activeDocument;

var myWindow = new Window ("dialog","HighlightWord",undefined,{closeButton:true});

var group = myWindow.add ("group");
group.alignment = "right";
group.add ("statictext", undefined, "Text:");
var maxSize = group.add ("edittext",undefined, );
group.add ("statictext", undefined, "");

group = myWindow.add ("group");
group.alignment = "right";
group.add ("statictext", undefined, "Word / phrase to highlight");
var minSize = group.add ("edittext",undefined, );
group.add ("statictext", undefined, " ");


group = myWindow.add ("group");
group.alignment = "right";
group.add ("statictext", undefined, "Hex color");
var minSize = group.add ("edittext",undefined, );
group.add ("statictext", undefined, " ");

myWindow.show ()

将文本文件加载到文本框中,在文本框中进行格式化,然后拍摄屏幕截图并将其保存为jpg会容易得多……问题是我不想这样做,因为我想重复多次PI无法看到多次处理某个内容如何排除我的建议。如果你的意思是想要多种颜色,你可以使用富文本框。你的JS代码仅用于显示一个窗口以收集输入-你有代码将输入应用到文本层吗?还是这就是你被卡住的地方?