переместить слой в Photoshop с помощью python win32com.client - PullRequest
0 голосов
/ 11 декабря 2018

У меня было чертовски много времени с функцией перемещения слоя, программированием сценария фотошопа на python.Слои заканчиваются внутри других наборов слоев, а не после них и т. Д.

Собственная команда для этого в Javascript в Photoshop:

layer.move(relativeObject, insertionLocation)

, где значение inserttionLocation может быть:

ElementPlacement.INSIDE, ElementPlace.PLACEATBEGINNING, ElementPlace.PLACEATEND, ElementPlace.PLACEBEFORE или ElementPlace.PLACEAFTER

Мой текущий код выглядит следующим образом:

@staticmethod
def moveLayer(layer, relativeLayer = None, placement = 3):
    if placement == PHAPS.ElementPlacementPLACEATEND:
        layers = PHAPS.app().ActiveDocument.layers
        relativeLayer = layers[len(layers) - 1]
        placement = PHAPS.ElementPlacementPLACEAFTER
    elif placement == PHAPS.ElementPlacementPLACEATBEGINNING:
        relativeLayer = PHAPS.app().ActiveDocument.layers[0]
        placement = PHAPS.ElementPlacementPLACEBEFORE
    layer.Move(relativeLayer, placement)

И вот мои предположенияпри значениях констант, которые, по-видимому, неверны:

ElementPlacementPLACEATBEGINNING = 1
ElementPlacementINSIDE = 2
ElementPlacementPLACEBEFORE = 3
ElementPlacementPLACEAFTER = 4
ElementPlacementPLACEATEND = 5

Я пытался отследить нативные значения этих констант, но Photoshop хорошо их скрывает.Я также пробовал код Action Manager, но мне его немного сложно понять.

Кто-нибудь знает надежный способ перемещения слоев в фотошопе с помощью python?Код диспетчера действий предпочтителен, но не обязателен.

...