吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4345|回复: 8
收起左侧

[其他转载] com模式编写photoshop插件【1】——从Hello,Photoshop开始

[复制链接]
only998 发表于 2019-6-15 20:17
本帖最后由 only998 于 2019-6-15 20:55 编辑

一、Photoshop版本选择
必须说明的是,尽管每个版本的api都几乎一致,但是具体到每个版本的photoshop上又有些许差异。我写这篇hello的时候就在Photoshop CC2014上遭遇了一个Bug,靠着百度爬了半天外网,仍然没有解决,最终怒换版本,摔-----。在版本选择上尽量选择官方完整版,绿色版因为精简的原因,可能会有一些bug。如果你不知道怎么选择的话,不妨使用我正在使用的版本(网络收集,绿色版,支持脚本,扩展面板,链接放在最后)

二、新建vb.net项目
打开vs,新建vb.net项目,我们选择windows窗体程序,使用.net4.0,如下图所示,设置好保存路径。
剪贴板-1.jpg
在界面上拖入一个按钮,双击进入事件编辑,粘贴如下代码(后面会解释):
[Visual Basic .NET] 纯文本查看 复制代码
        Dim app = CreateObject("Photoshop.Application")

        app.Preferences.RulerUnits = 1

        Dim doc = app.Documents.add(500, 500)

        Dim layer = doc.ArtLayers.add()

        layer.Kind = 2

        layer.TextItem.Contents = "Hello,Photoshop!"

        layer.TextItem.Size = 25

启动调试,单击按钮运行,运行结果如下:
剪贴板-2.jpg
当然,你也可能遭遇如下错误:
剪贴板-3.jpg
造成这个错误的原因是你使用了一个绿色版的photoshop,并且该软件的注册表缺失。
以管理员身份运行psRepair.exe(下载地址在com模式编写photoshop插件【0】),右键photoshop桌面图标,选择“打开文件所在位置”将打开的文件路径复制到psRepair.exe,单击“修复注册表”,如下图所示:
剪贴板-4.jpg

三、代码解释
        Dim app = CreateObject("Photoshop.Application")
        使用COM创建一个Photoshop的应用程序实例,Photoshop为单实例程序,无论你执行多少次都只会同时存在一个实例。
        COM依赖注册表,所以注册表不完整就会出错。
        
        app.Preferences.RulerUnits = 1
       设置了Application对象下的Preferences对象的RulerUnits属性,Preferences设置集合,相当于我们的软件设置,选项一类。RulerUnits运行单位,我们向photoshop传递了一个数,photoshop如何解读它?它是厘米,毫米,点,像素,还是其他,一般从精准运行的角度考虑会设置为像素(也就是1)。
        
        Dim doc = app.Documents.add(500, 500)
        新建了一个500X500个RulerUnits单位的文档,并赋值给doc
        
        Dim layer = doc.ArtLayers.add()
        新建了一个图层,并赋值给layer
        
        layer.Kind = 2
        设置图层为文本图层
        
        layer.TextItem.Contents = "Hello,Photoshop!"
        设置文本图层的文本对象的内容为Hello,Photoshop!
        
        layer.TextItem.Size = 25
        设置文本图层的文本对象的文字尺寸为25。注意在高版本的photoshop上,该单位不受RulerUnits设置影响,你的文字单位设置为点,就是点,设置为像素,就是像素。该功能在photoshop cc 2014上无效。
剪贴板-5.jpg

四、调试
        在vs中调试非常简单,在你需要的地方直接下断点就可以了:
剪贴板-6.jpg
        下一篇将主要介绍Photoshop的对象模型结构(DOM),以及一些官方API文档的介绍。
        我正在使用的Photoshop版本:Photoshop_CC_19.0.1_CHS_3D_201711_X64     
https://pan.baidu.com/s/11MRfOhBexbKdI7nYcCn9ew
提取码.txt (4 Bytes, 下载次数: 24)

免费评分

参与人数 5吾爱币 +5 热心值 +5 收起 理由
大肉骨头 + 1 用心讨论,共获提升!
sumile + 1 + 1 用心讨论,共获提升!
yanglinman + 1 谢谢@Thanks!
笙若 + 1 + 1 谢谢@Thanks!
苏紫方璇 + 3 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

yanglinman 发表于 2019-6-15 20:35
原来真的只有提取码,哪提取的链接呢?楼主
 楼主| only998 发表于 2019-6-15 20:56
yanglinman 发表于 2019-6-15 20:35
原来真的只有提取码,哪提取的链接呢?楼主

编辑的时候有链接,不知道为什么发出来没有了,已经加上。
kuqideyanlei 发表于 2019-6-15 21:04
冥界3大法王 发表于 2019-6-15 21:53
dim  vb的代码啊。
笙若 发表于 2019-6-15 21:54
感谢楼主,涨知识了,PS还可以这么玩
老扎77 发表于 2020-8-21 23:02
楼主可以收费开发一款插件吗
平凡之家 发表于 2020-9-15 15:56
谢谢分享,保存了
wyzkingstone 发表于 2020-11-1 17:15
感谢楼主分享。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 23:25

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表