【分享】 一种新的插件调试方法

【分享】 一种新的插件调试方法

这篇文章来自一个小伙伴的投稿。他一直想实现一种机制,可以在插件面板打开的时候,就能自动打开devTool进行调试,提升插件开发效率。我们针对这个话题在微信里头交流多回

关于如何调试CEP面板,我之前在【CEP教程-4】开发工具选择和调试 推荐使用旧版本的chromium来进行debug,但显然无法满足他的诉求,于是他经过各种苦思冥想、学习专研最终摸索出了更智能的调试方法,我钦佩他这种执着的问题解决精神,于是和他交流将这个过程记录下来,分享给大家。

阅读更多
【CEP教程-17】插件的打包和发布

【CEP教程-17】插件的打包和发布

这篇文章介绍当插件完成开发和测试之后,如何进行打包、生成可安装程序交付到用户的手中。

整个插件发布的过程,我大体分了如下几个环节,这篇文章我们会按照这几个环节逐个展开。

  1. 目录结构整理
  2. 版本号和更新机制
  3. 代码混淆和加密
  4. 签名
  5. 构建安装程序
  6. 发布到平台

为了能够有优雅的开发体验,发布的这个过程,我们也希望能够容纳到上文提到的工程化当中,只需要一个发布的命令,就能够完成这些操作,大幅提升我们的开发和发布效率。

阅读更多

【CEP教程-16】JSX的工程化

拖更许久的下篇终于来啦~~

这篇教程主要介绍JSX的工程化,和上篇结合起来,整个插件的开发工程化就全部完整了。

上次视频,大家有反馈字太小了,我本次特意调大了编辑器的字体,应该能够比较清晰看见了,视频时长一小时多点,内容很多,干货满满,大家需要有耐心~~

阅读更多

【CEP教程-15】前端框架在插件面板中的应用

这篇教程给大家介绍前端的流行框架,如何应用到Photoshop插件面板中,提升我们面板界面开发效率。这篇教程会采用视频的方式来给大家讲解,考虑到时长的关系,视频分上下两篇,上篇介绍使用前端框架开发插件面板,下篇介绍JSX脚本的工程化,共两个视频。

这是我第一次录制视频教程,还没有什么经验,也没有太多精力和时间做剪辑,和各种社区站点的UP主完全不能比,大家将就着看哈,有建议可以在评论区提~~

阅读更多
【CEP教程-14】数据存储相关

【CEP教程-14】数据存储相关

在我们日常插件开发过程中,经常会需要存储一些数据,比如用户当前操作的状态、用户登录的账号信息,或者我们对PSD文档做的一些修改等等,这些都需要我们将一些动态数据,写入到当前用户设备上,这篇文章就来介绍一下CEP插件体系给我们提供了哪些可以进行数据存储的类型和使用方式。

阅读更多
【CEP教程-13】nodejs在插件开发中的应用

【CEP教程-13】nodejs在插件开发中的应用

前面的文章我们学习到,CEP的插件面板,是基于浏览器的web开发生态,我们通过Html/css/js来编写面板的结构、样式和交互,通过调用ExtendScript来操控宿主Ps。

除此之外,Adobe还在这个浏览器里头嵌入了nodejs的运行时,可以让我们在面板开发的时候使用nodejs的各种特性,这无疑大大的扩展了插件面板的能力,这篇文章我们就来介绍一下如何在CEP插件面板中使用nodejs,以及一些特性的应用吧

阅读更多
【CEP教程-12】如何从Ps中导出图片

【CEP教程-12】如何从Ps中导出图片

在做Ps插件开发的时候,一个非常常见的功能就是导出图片,有时候我们需要导出整个PSD文档,有时候我们需要导出某个图层或某个几个图层,市面上所有的和UI切图有关的产品和插件,都是运用了插件的图像导出能力来完成这个诉求。本篇文章我们就主要来介绍如何从Ps中获取图像,或许各种格式的图像。

阅读更多
【CEP教程-11】生成器

【CEP教程-11】生成器

这篇文章,我给大家介绍一下Photoshop一个比较冷门的扩展部分,叫生成器(英文generator),这个东西不在CEP插件面板这个体系内,了解和用的人也比较少。但是呢它确实也是Ps提供给开发者进行扩展定制的一个模块,并且它提供了一些非常独有的特性,对我们插件开发也有较大的助益,所以我单独开一个章节来进行介绍。

背景介绍

生成器,是Photoshop在2015年随着CC2015这个版本一起发布的。当时,由于移动端开始兴起,移动UI设计开始成为主流,随之诞生了一个叫Sketch的设计工具,主打UI设计,相比Ps它更轻巧在UI设计领域效率更高。Adobe也感觉到了压力,于是开始尝试在Ps上融入一些新的元素来提升UI设计能力,所以在CC2015中集成了两个东西:

阅读更多
【CEP教程-10】图层处理那些事

【CEP教程-10】图层处理那些事

前面三篇文章,我系统的介绍了Action Manager的基本逻辑和使用方法。希望通过这三部曲能够让大家对Ps脚本编程中的黑魔法有一个更深的认识,并且可以自己上手写一些AM代码,基本上目前绝大多数的场景,我都不需要去网上找别人的代码来抄,而是可以自己去挖掘最终自己写出来想要的功能逻辑。

今天这篇教程,我们会顺着AM继续实战,介绍Ps中最重要的一块 – 图层的常见操作,在课程结尾我们会沉淀出一份JS库文件,封装好了过程中写好的代码,便于日后使用。让我们现在开始吧~~

阅读更多
【CEP教程-9】Action Manager从好奇到劝退 - 下篇

【CEP教程-9】Action Manager从好奇到劝退 - 下篇

首先,祝各位新年快乐!今天是2022年的第一天,我没有贪玩,想着要保持文章更新的频度,文章更新周期不要超过2两周,这样才能保证把这个教程顺利完整的写完。在这里祝大家新的一年都顺顺利利,也希望这套教程能够顺畅的完成。

上篇文章我们介绍了如何使用Action Manager来从PS中获取数据,我们深入讲解了ActionDescriptor的组织结构和使用逻辑,本质上和JS开发没有多大区别,我们通过ActionDescriptor, ActionReference, ActionList这3个对象以及他们提供的方法,进行递归遍历,将其中的key和value打印出来,以获取我们需要的数据项。并且我还介绍了如何从宿主全局出发通过对象树分析的方法,挨个将Ps的各个对象和数据进行挖掘,这样你就不需要去猜测某个目标用什么key了,这些key都在对象树的属性当中。如果你仔细研读该文章,并且自己实际动手去尝试了,应该就能够自己尝试的去写一些AM代码了,然后会发现它的功能针对比官方提供的DOM API要丰富强大的多。

这篇文章,我们开始介绍AM三部曲的最后一篇,如何对宿主进行设置操作。把设置放在最后来讲,是因为它相比GET行为,要更难,更不好理解,也更不可预期。所以阅读本篇文章,一定要专注认真,尽量跟随我的思路往下走,我会努力将这套方法一点点剖析出来,尽管如此,也不能确保Ps所有的目标对象都是可以设置成功的,这点你要提前明白。让我们开始吧

阅读更多