TsXor

Results 59 comments of TsXor

> 图层类型很多 文字图层 形状图层 智能对象等等,每个图层也可能包含各种效果,单纯的导入PNG和复制图层可不是等效 兵来将挡,水来土掩呗。ps api是可以读取图层属性的,像文字图层,形状图层这样的图层只要读取所有信息并在目标psd中创建一个一样的即可。

你第一条回复的“目前在考虑是否结合PS里的动作进行处理”其实是个不错的思路。 我试了一下,录制了一个全选并复制的动作和一个粘贴的动作,尝试用这两个动作复制图层,可惜的是,复制的文字图层已经被自动转换成了图片,无法编辑。

> 那我请教一下 望不吝赐教 一个文字图层 多行文字 部分文字字号不同,颜色不同,可能加粗倾斜下划线 如何使用api读取信息并新建一个一模一样的 读文档:https://loonghao.github.io/photoshop-python-api/reference/photoshop/api/text_item/ 我其实不太明白为啥作者不写一份中文文档,明明他写英语都有语法错误(见上方捉虫)

> > > 那我请教一下 望不吝赐教 一个文字图层 多行文字 部分文字字号不同,颜色不同,可能加粗倾斜下划线 如何使用api读取信息并新建一个一模一样的 > > > > > > 读文档:https://loonghao.github.io/photoshop-python-api/reference/photoshop/api/text_item/ 我其实不太明白为啥作者不写一份中文文档,明明他写英语都有语法错误(见上方捉虫) > > 英文更普适 语法无所谓 看的大差不差就行了 不必吹毛求疵 PS的api 有一些信息是获取不到的比如修改我说的这种复杂一些的文字图层,我是没有找到方法能读出更细的信息 基于图层的调整字号 调整文本是没问题 但调整第5-10个字的字号 或者文本 这种就不行了...

结合动作做了一下解读,缺很多属性,有时间(指下周)再补 ```python import photoshop.api as ps from psaction import * psapp = ps.Application() xyt = psActionDescriptor(psapp, [ \ #作用未知 ('putDouble', (psstr('xx'), 1.000000)), \ ('putDouble', (psstr('xy'), 0.000000)), \ ('putDouble', (psstr('yx'), 0.000000)),...

> 话说怎么录制jsx? 我录制出来的动作是atn 安装ScriptingListener插件:https://helpx.adobe.com/photoshop/kb/downloadable-plugins-and-content.html#id_68969 注意:不用时请将它移出插件目录,以免录制的操作挤爆硬盘

通过这几天对ActionManager的研究,我发现了解决此问题的通用方案: 1. 设计一个ActionReference选择目标图层 2. 使用app.executeActionGet方法获取到包含目标图层数据的ActionDescriptor 3. 切换文件 4. 在新文件中创建一个同名同类型图层 5. 使用executeAction将第2步的ActionDescriptor中的数据全部注入新文件中的图层

此段代码可以实现一个文字图层的全复制,将当前文档选中的图层复制到下一个文档选中的图层上(需要都是文字图层) ``` #参考:https://loonghao.github.io/photoshop-python-api/examples/#copy-and-paste #导入模块,设置app import photoshop.api as ps import photoshop.api.action_manager as am app = ps.Application() def switch_doc(n): #ActionManager实现,向前/后切换n个文档,正数向后,负数向前 next_desc = ps.ActionDescriptor.load({'null': ['!ref', ReferenceKey('document', am.Offset+n)]) app.executeAction(am.str2id('select'), next_desc) startRulerUnits = app.preferences.rulerUnits app.preferences.rulerUnits...

您也许不知道,这段口口相传的代码源自StackOverflow(流汗黄豆) 这是https://stackoverflow.com/questions/130763/request-uac-elevation-from-within-a-python-script 中Martín De la Fuente的回答,这事跟这个什么IDE没关系,因为这个提权代码的逻辑就是:1.看自己有没有管理员 2.没有就调用ShellExecuteW以管理员权限重新运行自己 解决方法非常简单: 把`ctypes.windll.shell32.ShellExecuteW(None, "runas", sys.executable, file, None, 1)`换成`ctypes.windll.shell32.ShellExecuteW(None, "runas", sys.executable, file, None, 0)`即可隐藏执行窗口 但是请注意,如果py脚本写了GUI,请不要这么改,否则GUI也会被隐藏

我火绒没报(前天的版本