初衷
最近因为工作中的需求,需要用到PhotoShop配合,photoshop的开发需要scriptExtend
它和JavaScript有一定的差异,基本上可以看作JavaScript for PhotoShop
语言本身并不难(反正我不会)
但就需求本身而言,我还是希望能够在python里完成(毕竟Maya...)
那其实在GitHub里 已经有大佬提供了现成的photoshop-python-api项目,链接下方自取:
Github
https://github.com/loonghao/photoshop-python-api
但是蛋疼的是,需要python3.5以上,so....最后觉得还是自己写了
1、连接PhotoShop
我们可以利用Window提供的Api创建和使用COM对象来驱动PhotoShop
在python里可以用到win32com 或者 comtypes 来创建COM对象
from comtypes.client import CreateObject
ps_app = CreateObject("Photoshop.Application", dynamic=True)
运行上段代码后,程序会连接到一个正在活动的PhotoShop实例
Tips:如果没有正在活动的PhotoShop,那程序会自动启动一个PhotoShop
2、干点事,试试?
一、新建一个文档
"""
先设置好默认单位
创建一个1024*1024*72像素的new_test文档
"""
ps_app.Preferences.RulerUnits = 1
doc = ps_app.Documents.Add(1024, 1024, 72, "new_test", 2, 1, 1)
运行上段代码后,程序会在已经激活的PhotoShop中执行新建文档动作
二、新建图层
"""
first_art_layer #图层
|
first_layer_set #组
|
second_art_layer #图层
"""
art_layer = doc.ArtLayers.Add()
art_layer.name="first_art_layer"
layer_set = doc.LayerSets.Add()
lay_set.name = "first_layer_set"
art_layer_2 = layer_set.ArtLayers.Add()
art_layer_2.name = "second_art_layer"
运行上段代码后,会创建带有层级结构的图层:
三、关闭文档
doc.Close()
四、关闭PhotoShop
ps_app.quit()
Ending
那经过短时间摸索后,可以确认该方法能玩,那就可以进入到正式的代码阶段
后面会继续说到不同的操作方法和该查询什么文档,以及怎么监听动作脚本