【问题标题】:Can't set Art Layer Kind in Photoshop无法在 Photoshop 中设置艺术图层类型
【发布时间】:2018-06-12 00:04:11
【问题描述】:

我正在尝试通过 python 在 Photoshop 中创建一个用于创建渐变图层的工具。在搜索 Adob​​e VBScript 参考文档时,编码人员应该能够通过执行以下代码来创建新图层并设置其“种类”:

GMapLayer = self.doc.artLayers.Add()
GMapLayer.Kind = 13

将 kind 设置为 13 应该会创建一个 Gradient Map Adjustment 图层。问题是,此代码仅适用于 23 个条目中的前 2 个。 kind 1 创建标准空层, kind 2 创建文本层,所有其他数字抛出此错误:

_ctypes.COMError: (-2147213311, None, (None, None, None, 0, None))

adobe 的文档没有指定如何使用其他 21 个常量。有人遇到过吗?

【问题讨论】:

    标签: python vbscript adobe photoshop


    【解决方案1】:

    我不确定为什么会这样。

    但是,有一个脚本侦听器解决方法。同意,这很丑;但它有效!

    添加新的渐变调整层:

    Dim appRef
    Set appRef = CreateObject( "Photoshop.Application" )
    
    ' Switch off any dialog boxes
    appRef.displayDialogs = 3 
    
    appRef.BringToFront
    
    
    
    REM =======================================================
    DIM objApp
    SET objApp = CreateObject("Photoshop.Application")
    REM Use dialog mode 3 for show no dialogs
    DIM dialogMode
    dialogMode = 3
    DIM idMk
    idMk = objApp.CharIDToTypeID( "Mk  " )
        DIM desc3873
        SET desc3873 = CreateObject( "Photoshop.ActionDescriptor" )
        DIM idnull
        idnull = objApp.CharIDToTypeID( "null" )
            DIM ref1360
            SET ref1360 = CreateObject( "Photoshop.ActionReference" )
            DIM idAdjL
            idAdjL = objApp.CharIDToTypeID( "AdjL" )
            Call ref1360.PutClass( idAdjL )
        Call desc3873.PutReference( idnull, ref1360 )
        DIM idUsng
        idUsng = objApp.CharIDToTypeID( "Usng" )
            DIM desc3874
            SET desc3874 = CreateObject( "Photoshop.ActionDescriptor" )
            DIM idType
            idType = objApp.CharIDToTypeID( "Type" )
                DIM desc3875
                SET desc3875 = CreateObject( "Photoshop.ActionDescriptor" )
                DIM idGrad
                idGrad = objApp.CharIDToTypeID( "Grad" )
                    DIM desc3876
                    SET desc3876 = CreateObject( "Photoshop.ActionDescriptor" )
                    DIM idNm
                    idNm = objApp.CharIDToTypeID( "Nm  " )
                    Call desc3876.PutString( idNm, "Foreground to Background" )
                    DIM idGrdF
                    idGrdF = objApp.CharIDToTypeID( "GrdF" )
                    DIM idCstS
                    idCstS = objApp.CharIDToTypeID( "CstS" )
                    Call desc3876.PutEnumerated( idGrdF, idGrdF, idCstS )
                    DIM idIntr
                    idIntr = objApp.CharIDToTypeID( "Intr" )
                    Call desc3876.PutDouble( idIntr, 4096.000000 )
                    DIM idClrs
                    idClrs = objApp.CharIDToTypeID( "Clrs" )
                        DIM list470
                        SET list470 = CreateObject( "Photoshop.ActionList" )
                            DIM desc3877
                            SET desc3877 = CreateObject( "Photoshop.ActionDescriptor" )
                            DIM idClr
                            idClr = objApp.CharIDToTypeID( "Clr " )
                                DIM desc3878
                                SET desc3878 = CreateObject( "Photoshop.ActionDescriptor" )
                                DIM idRd
                                idRd = objApp.CharIDToTypeID( "Rd  " )
                                Call desc3878.PutDouble( idRd, 0.000000 )
                                DIM idGrn
                                idGrn = objApp.CharIDToTypeID( "Grn " )
                                Call desc3878.PutDouble( idGrn, 0.000000 )
                                DIM idBl
                                idBl = objApp.CharIDToTypeID( "Bl  " )
                                Call desc3878.PutDouble( idBl, 0.000000 )
                            DIM idRGBC
                            idRGBC = objApp.CharIDToTypeID( "RGBC" )
                            Call desc3877.PutObject( idClr, idRGBC, desc3878 )
                            DIM idType2
                            idType2 = objApp.CharIDToTypeID( "Type" )
                            DIM idClry
                            idClry = objApp.CharIDToTypeID( "Clry" )
                            DIM idUsrS
                            idUsrS = objApp.CharIDToTypeID( "UsrS" )
                            Call desc3877.PutEnumerated( idType2, idClry, idUsrS )
                            DIM idLctn
                            idLctn = objApp.CharIDToTypeID( "Lctn" )
                            Call desc3877.PutInteger( idLctn, 0 )
                            DIM idMdpn
                            idMdpn = objApp.CharIDToTypeID( "Mdpn" )
                            Call desc3877.PutInteger( idMdpn, 50 )
                        DIM idClrt
                        idClrt = objApp.CharIDToTypeID( "Clrt" )
                        Call list470.PutObject( idClrt, desc3877 )
                            DIM desc3879
                            SET desc3879 = CreateObject( "Photoshop.ActionDescriptor" )
                            DIM idClr2
                            idClr2 = objApp.CharIDToTypeID( "Clr " )
                                DIM desc3880
                                SET desc3880 = CreateObject( "Photoshop.ActionDescriptor" )
                                DIM idRd2
                                idRd2 = objApp.CharIDToTypeID( "Rd  " )
                                Call desc3880.PutDouble( idRd2, 255.000000 )
                                DIM idGrn2
                                idGrn2 = objApp.CharIDToTypeID( "Grn " )
                                Call desc3880.PutDouble( idGrn2, 255.000000 )
                                DIM idBl2
                                idBl2 = objApp.CharIDToTypeID( "Bl  " )
                                Call desc3880.PutDouble( idBl2, 255.000000 )
                            DIM idRGBC2
                            idRGBC2 = objApp.CharIDToTypeID( "RGBC" )
                            Call desc3879.PutObject( idClr2, idRGBC2, desc3880 )
                            DIM idType3
                            idType3 = objApp.CharIDToTypeID( "Type" )
                            DIM idClry2
                            idClry2 = objApp.CharIDToTypeID( "Clry" )
                            DIM idUsrS2
                            idUsrS2 = objApp.CharIDToTypeID( "UsrS" )
                            Call desc3879.PutEnumerated( idType3, idClry2, idUsrS2 )
                            DIM idLctn2
                            idLctn2 = objApp.CharIDToTypeID( "Lctn" )
                            Call desc3879.PutInteger( idLctn2, 4096 )
                            DIM idMdpn2
                            idMdpn2 = objApp.CharIDToTypeID( "Mdpn" )
                            Call desc3879.PutInteger( idMdpn2, 50 )
                        DIM idClrt2
                        idClrt2 = objApp.CharIDToTypeID( "Clrt" )
                        Call list470.PutObject( idClrt2, desc3879 )
                    Call desc3876.PutList( idClrs, list470 )
                    DIM idTrns
                    idTrns = objApp.CharIDToTypeID( "Trns" )
                        DIM list471
                        SET list471 = CreateObject( "Photoshop.ActionList" )
                            DIM desc3881
                            SET desc3881 = CreateObject( "Photoshop.ActionDescriptor" )
                            DIM idOpct
                            idOpct = objApp.CharIDToTypeID( "Opct" )
                            DIM idPrc
                            idPrc = objApp.CharIDToTypeID( "#Prc" )
                            Call desc3881.PutUnitDouble( idOpct, idPrc, 100.000000 )
                            DIM idLctn3
                            idLctn3 = objApp.CharIDToTypeID( "Lctn" )
                            Call desc3881.PutInteger( idLctn3, 0 )
                            DIM idMdpn3
                            idMdpn3 = objApp.CharIDToTypeID( "Mdpn" )
                            Call desc3881.PutInteger( idMdpn3, 50 )
                        DIM idTrnS3
                        idTrnS3 = objApp.CharIDToTypeID( "TrnS" )
                        Call list471.PutObject( idTrnS3, desc3881 )
                            DIM desc3882
                            SET desc3882 = CreateObject( "Photoshop.ActionDescriptor" )
                            DIM idOpct3
                            idOpct3 = objApp.CharIDToTypeID( "Opct" )
                            DIM idPrc3
                            idPrc3 = objApp.CharIDToTypeID( "#Prc" )
                            Call desc3882.PutUnitDouble( idOpct3, idPrc3, 100.000000 )
                            DIM idLctn4
                            idLctn4 = objApp.CharIDToTypeID( "Lctn" )
                            Call desc3882.PutInteger( idLctn4, 4096 )
                            DIM idMdpn4
                            idMdpn4 = objApp.CharIDToTypeID( "Mdpn" )
                            Call desc3882.PutInteger( idMdpn4, 50 )
                        DIM idTrnS4
                        idTrnS4 = objApp.CharIDToTypeID( "TrnS" )
                        Call list471.PutObject( idTrnS4, desc3882 )
                    Call desc3876.PutList( idTrns4, list471 )
                DIM idGrdn
                idGrdn = objApp.CharIDToTypeID( "Grdn" )
                Call desc3875.PutObject( idGrad, idGrdn, desc3876 )
            DIM idGdMp
            idGdMp = objApp.CharIDToTypeID( "GdMp" )
            Call desc3874.PutObject( idType, idGdMp, desc3875 )
        DIM idAdjL2
        idAdjL2 = objApp.CharIDToTypeID( "AdjL" )
        Call desc3873.PutObject( idUsng, idAdjL2, desc3874 )
    Call objApp.ExecuteAction( idMk, desc3873, dialogMode )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多