【Photoshop JSX脚本】设置字体不同颜色样式

var c1 = new SolidColor();

with (c1.rgb) { red   = 200; green = 100; blue = 150; } 

var c2 = new SolidColor();

with (c2.rgb) { red   = 20; green = 100; blue = 200; } 

// activeLayer in demo example must be textlayer

activeDocument.activeLayer.textItem.size = 12;

activeDocument.activeLayer.textItem.contents = "0123456789012345678901234567890";

// examples

set_text_style(0, 4, 50)

set_text_style(4, 4, 70, c1)

set_text_style(10, 5, 30, c2)

function set_text_style(from, len, size, color)

    {

    try {

        var d = new ActionDescriptor();

        var r = new ActionReference();

        r.putEnumerated(stringIDToTypeID("textLayer"), stringIDToTypeID("ordinal"), stringIDToTypeID("targetEnum"));

        d.putReference(stringIDToTypeID("null"), r);

        var d1 = new ActionDescriptor();

        var list1 = new ActionList();

        var d2 = new ActionDescriptor();

        d2.putInteger(stringIDToTypeID("from"), from);

        d2.putInteger(stringIDToTypeID("to"), from+len);

        var d3 = new ActionDescriptor();

        d3.putUnitDouble(stringIDToTypeID("size"), stringIDToTypeID("pointsUnit"), size);

        if (color != undefined)

            {

            var d4 = new ActionDescriptor();

            d4.putDouble(stringIDToTypeID("red"),   color.rgb.red);

            d4.putDouble(stringIDToTypeID("green"), color.rgb.green);

            d4.putDouble(stringIDToTypeID("blue"),  color.rgb.blue);

            d3.putObject(stringIDToTypeID("color"), stringIDToTypeID("RGBColor"), d4);

            }

        d2.putObject(stringIDToTypeID("textStyle"), stringIDToTypeID("textStyle"), d3);

        list1.putObject(stringIDToTypeID("textStyleRange"), d2);

        d1.putList(stringIDToTypeID("textStyleRange"), list1);

        d.putObject(stringIDToTypeID("to"), stringIDToTypeID("textLayer"), d1);

        executeAction(stringIDToTypeID("set"), d, DialogModes.NO);

        }

    catch (e) { throw(e); } 

    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值