Python部分
1.创建插件
在AS中,创建一个新的图色插件很容易,只需要继承 GPTask 即可.
继承后需要补充 name属性
, ui_path属性
, run方法
的内容
#自定义插件案例
from ascript.android.screen.gp import GPStack,GPTask,Result
from ascript.android.system import R
import numpy as np
class MyPlug(GPTask):
name = "插件名称"
ui_path = "插件UI路径" # 这里使用的是相对路径,该UI路径下必须包含 index.html,这将作为插件的入口
def run(self,cv_image: np.ndarray,offset_x:int=0,offset_y:int=0,data=None) -> Result:
# 在这里要写你的插件逻辑
return Result(cv_image,offset_x,offset_y,data)
插件名称
- name 字段
插件的名称,必须配置. 发布插件后,会显示在插件列表中.
插件UI路径
- ui_path
制作插件UI是 图形处理插件中 比较繁琐的一部分内容. 其中涉及到 html,css,javascript 的知识. 同时我们也给你提供了相关js的API、
在这里,我们需要在 工程中 创建一个任意目录,目录中必须包含 index.html
我们只需要将这个 index.html 的 上级目录相 对路径配置给 ui_path 即可.
这里 我们推荐你使用 R.rel(__file__,"res/你的ui路径") 这种形式来填写路径.
配置案例
插件的核心实现
插件的核心,是实现 GPTask中的run方法
在run方法中,你可以绘制图片,或者根据图像算法得到一个结果.
def run(self,cv_image: np.ndarray,offset_x:int=0,offset_y:int=0,data=None) -> Result:
# 在这里要写你的插件逻辑
return Result(cv_image,offset_x,offset_y,data)
- 必填部分说明
字段或方法 | 类型 | 是否必填 | 说明 |
---|---|---|---|
cv_image | np | 是 | 一张3通道的 cv numpy image |
offset_x,offset_y | str | 是 | 上级插件处理图片后,返回的偏移量. 比如:上级插件裁剪了图片,会把裁剪区域距原图顶点的偏移量传入. |
data | obj | 是 | 上级插件处理图片后,返回的数据 |
Result | object | 是 | 当run方法内部,处理好图片,和数据后,需要传封装进 Result中返回 |
2.build.as配置插件
在 build.as文件中配置gp属性
gp是个json数组,我们需要写一个json对象,对象包含两个属性 id,des
{
"id":"这里写继承GPTask类的路径",
"des":"这是我的第一个图色插件"
}
- 属性介绍
字段或方法 | 类型 | 是否必填 | 说明 |
---|---|---|---|
id | str | 是 | 插件的相对路径: 以 “.”开头, “.”代表当前工程根目录 如:你在工程根__init__.py 中有一个MyPlug插件,则可以写为 .MyPlug 如:你在工程下有一个user.py,在user.py中有一个MyPlug插件,则可以写为 .user.MyPlug |
des | str | 是 | 插件功能简短的介绍 |
- id: 插件的路径
路径如何书写
- des: 插件的简短功能描述