python驱动photoshop_将photoshop纳入基于python的pipeline接口系统

python驱动photoshop_将photoshop纳入基于python的pipeline接口系统在整个产线系统中 基于 windows 的 photoshop 平台 应该是功能最强大 应用范围相对比较大的工具 所以在工作中将 photoshop 也纳入产线管理系统 对前期设计人员也是一件非常舒服的事情 只要本地保存好 psd 一件提交上传正确的格式 尺寸 命名 并且不需要管最终输出的位置

大家好,我是讯享网,很高兴认识大家。

在整个产线系统中,基于windows的photoshop平台,应该是功能最强大,应用范围相对比较大的工具。所以在工作中将photoshop也纳入产线管理系统,对前期设计人员也是一件非常舒服的事情,只要本地保存好psd,一件提交上传正确的格式,尺寸,命名。并且不需要管最终输出的位置。每次提交的过程文件都会保存在服务器上,不用担心自己手残覆盖掉正确的源文件。

想想还是蛮爽的。但是ps本身没有python的开发接口。所以需要使用win32库或者java来驱动他。下面介绍一下win32库和java两种驱动方式。

import win32com.client

# Pieced together from

# http://techarttiki.blogspot.com/2008/08/photoshop-scripting-with-python.html

# and

# http://rubypane.blogspot.com/2013/01/sample-python-script-to-control.html

psApp = win32com.client.Dispatch("Photoshop.Application")

psApp.Open(r"C:\temp\blah.psd")         # Opens a PSD file

doc = psApp.Application.ActiveDocument  # Get active document object

layer = doc.ArtLayers[2]                # Get the bottom-most layer

layers = doc.artLayers

artLayerRef = layers.add

artLayerRef.kind = 2 #Text layer

# Set the contents of the text layer.

textItemRef = artLayerRef.TextItem

textItemRef.Contents = "Hello, web!"

doc.Save()

这个代码就是制作了一个小文本框,不过我觉得如果可以控制他的位置,字体或者其他什么的,会更好。不过简单的打开保存,已经满足了我的基础需求

除此之外第二种方法

可以尝试使用 photoshop_python_api


讯享网

https://github.com/loonghao/photoshop_python_api

原版范例 : https://photoshop-python-api.readthedocs.io/en/master/examples.html

import photoshop as ps

def hello_world():

app = ps.Application()

doc = app.documents.add()

text_color = ps.SolidColor()

text_color.rgb.green = 255

new_text_layer = doc.artLayers.add()

new_text_layer.kind = ps.LayerKind.TextLayer

new_text_layer.textItem.contents = 'Hello, World!'

new_text_layer.textItem.position = [160, 167]

new_text_layer.textItem.size = 40

new_text_layer.textItem.color = text_color

options = ps.JPEGSaveOptions(quality=5)

jpg = 'd:/hello_world.jpg'

doc.saveAs(jpg, options, asCopy=True)

app.doJavaScript(f'alert("save to jpg: {jpg}")')

if __name__ == '__main__':

hello_world()

这个定义的方法就多很多了。用起来也比上一个方法更灵活。当我需要出水印图的时候。也可以在服务器提交结束之后挂一个子行为把水印加上,并且在另一个位置保存一份。想想就觉得很爽。找到了方法。就让我们rock'n'roll起来。

小讯
上一篇 2025-03-06 14:40
下一篇 2025-03-10 08:57

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/55137.html