PhotoShop工具开发之Python(一)

时间:2024-03-05 15:11:27

初衷

最近因为工作中的需求,需要用到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

那经过短时间摸索后,可以确认该方法能玩,那就可以进入到正式的代码阶段


后面会继续说到不同的操作方法和该查询什么文档,以及怎么监听动作脚本