【问题标题】:Photoshop activeDocument.gradients propertyPhotoshop activeDocument.gradients 属性
【发布时间】:2011-11-08 13:04:40
【问题描述】:

我正在使用 Photoshop cs4,当我使用 adobe 脚本检查此属性时,我得到未定义。如何在 Photoshop 中访问已加载的文档渐变以通过脚本对其进行操作(例如修改渐变停止、删除渐变...)?

【问题讨论】:

    标签: javascript adobe photoshop


    【解决方案1】:

    我知道这是一篇旧帖子,在 Photoshop 参考指南中似乎没有关于渐变属性的任何信息。但是...

    使用scriptlistner 在空白的 640x640 图像上使用简单的前景到背景渐变,我们可以得到:

    // =======================================================
    var id148 = charIDToTypeID( "Grdn" );
    var desc24 = new ActionDescriptor();
    var id149 = charIDToTypeID( "From" );
    var desc25 = new ActionDescriptor();
    var id150 = charIDToTypeID( "Hrzn" );
    var id151 = charIDToTypeID( "#Pxl" );
    desc25.putUnitDouble( id150, id151, 639.000000 ); //x1
    var id152 = charIDToTypeID( "Vrtc" );
    var id153 = charIDToTypeID( "#Pxl" );
    desc25.putUnitDouble( id152, id153, 0.000000 ); //y1
    var id154 = charIDToTypeID( "Pnt " );
    desc24.putObject( id149, id154, desc25 );
    var id155 = charIDToTypeID( "T   " );
    var desc26 = new ActionDescriptor();
    var id156 = charIDToTypeID( "Hrzn" );
    var id157 = charIDToTypeID( "#Pxl" );
    desc26.putUnitDouble( id156, id157, 639.000000 ); //x2
    var id158 = charIDToTypeID( "Vrtc" );
    var id159 = charIDToTypeID( "#Pxl" );
    desc26.putUnitDouble( id158, id159, 639.000000 ); //y2
    var id160 = charIDToTypeID( "Pnt " );
    desc24.putObject( id155, id160, desc26 );
    var id161 = charIDToTypeID( "Type" );
    var id162 = charIDToTypeID( "GrdT" );
    var id163 = charIDToTypeID( "Lnr " );
    desc24.putEnumerated( id161, id162, id163 );
    var id164 = charIDToTypeID( "UsMs" );
    desc24.putBoolean( id164, true );
    var id165 = charIDToTypeID( "Grad" );
    var desc27 = new ActionDescriptor();
    var id166 = charIDToTypeID( "Nm  " );
    desc27.putString( id166, "Foreground to Background" ); // name of the gradient
    var id167 = charIDToTypeID( "GrdF" );
    var id168 = charIDToTypeID( "GrdF" );
    var id169 = charIDToTypeID( "CstS" );
    desc27.putEnumerated( id167, id168, id169 );
    var id170 = charIDToTypeID( "Intr" );
    desc27.putDouble( id170, 4096.000000 );
    var id171 = charIDToTypeID( "Clrs" );
    var list5 = new ActionList();
    var desc28 = new ActionDescriptor();
    var id172 = charIDToTypeID( "Type" );
    var id173 = charIDToTypeID( "Clry" );
    var id174 = charIDToTypeID( "FrgC" );
    desc28.putEnumerated( id172, id173, id174 );
    var id175 = charIDToTypeID( "Lctn" );
    desc28.putInteger( id175, 0 );
    var id176 = charIDToTypeID( "Mdpn" );
    desc28.putInteger( id176, 50 );
    var id177 = charIDToTypeID( "Clrt" );
    list5.putObject( id177, desc28 );
    var desc29 = new ActionDescriptor();
    var id178 = charIDToTypeID( "Type" );
    var id179 = charIDToTypeID( "Clry" );
    var id180 = charIDToTypeID( "BckC" );
    desc29.putEnumerated( id178, id179, id180 );
    var id181 = charIDToTypeID( "Lctn" );
    desc29.putInteger( id181, 4096 );
    var id182 = charIDToTypeID( "Mdpn" );
    desc29.putInteger( id182, 50 );
    var id183 = charIDToTypeID( "Clrt" );
    list5.putObject( id183, desc29 );
    desc27.putList( id171, list5 );
    var id184 = charIDToTypeID( "Trns" );
    var list6 = new ActionList();
    var desc30 = new ActionDescriptor();
    var id185 = charIDToTypeID( "Opct" );
    var id186 = charIDToTypeID( "#Prc" );
    desc30.putUnitDouble( id185, id186, 100.000000 );
    var id187 = charIDToTypeID( "Lctn" );
    desc30.putInteger( id187, 0 );
    var id188 = charIDToTypeID( "Mdpn" );
    desc30.putInteger( id188, 50 );
    var id189 = charIDToTypeID( "TrnS" );
    list6.putObject( id189, desc30 );
    var desc31 = new ActionDescriptor();
    var id190 = charIDToTypeID( "Opct" );
    var id191 = charIDToTypeID( "#Prc" );
    desc31.putUnitDouble( id190, id191, 100.000000 );
    var id192 = charIDToTypeID( "Lctn" );
    desc31.putInteger( id192, 4096 );
    var id193 = charIDToTypeID( "Mdpn" );
    desc31.putInteger( id193, 50 );
    var id194 = charIDToTypeID( "TrnS" );
    list6.putObject( id194, desc31 );
    desc27.putList( id184, list6 );
    var id195 = charIDToTypeID( "Grdn" );
    desc24.putObject( id165, id195, desc27 );
    executeAction( id148, desc24, DialogModes.NO );
    

    不幸的是,这并不像只通过名称调用您需要的渐变那么简单,您最好使用 scriptlistner 使用所需的渐变进行录制。

    这个post 也可能对你有用

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-26
      • 1970-01-01
      • 2015-02-13
      • 1970-01-01
      • 2021-03-29
      • 1970-01-01
      • 2011-08-13
      • 2011-05-18
      相关资源
      最近更新 更多