关于hms-core:图像处理之滤镜图文排版的开发详解从入门到起飞

6次阅读

共计 3214 个字符,预计需要花费 9 分钟才能阅读完成。

在上一篇如何给利用减少图片编辑性能:剪裁、滤镜、贴纸、排版、标签,咱们具体解说了“图片”风口下,各类利用可能面临的“困境”:因为利用内不足图片编辑设计能力,或者提供的图片编辑设计能力有余,导致本来功能强大的优质利用,没法进步用户留存率,影响利用本身竞争实力。华为图像服务旨在为各类交互利用解决这一问题,能够说是应时而生,应势而生。在具体介绍华为图像服务五大图像编辑能力别离是什么、各自的利用场景以及性能价值的根底上,接下来将为大家带来五大图片编辑性能的具体开发步骤。

滤镜服务

开发步骤

滤镜服务开发步骤如下,须要您提供图片和相干参数,失去相应的返回值。

1、导入滤镜服务包。

Java 代码

import com.huawei.hms.image.vision.*;    
import com.huawei.hms.image.vision.bean.ImageVisionResult;

2、获取滤镜服务实例。

Java 代码

// 获取 ImageVisionImpl 对象    
 ImageVisionImpl imageVisionAPI = ImageVision.getInstance(this);

3、服务初始化,调用 setVisionCallBack 时须要实现 ImageVision.VisionCallBack 接口,重写其中的 onSuccess(int successCode)和 onFailure(int errorCode)办法。

框架初始化胜利后会回调 onSuccess 办法,在 onSuccess 办法中,须要再初始化滤镜服务。调用滤镜初始化接口时,只有通过校验,第三方利用能力应用滤镜服务,initCode 必须为 0,滤镜服务初始化胜利。

框架初始化失败时会回调 onFailure 办法,传回失败错误码。

imageVisionAPI.setVisionCallBack(new ImageVision.VisionCallBack() {
    @Override
    public void onSuccess(int successCode) {int initCode = imageVisionAPI.init(context, authJson);
       ...
    }
    @Override
    public void onFailure(int errorCode) {...}
});

入参 authJson:

阐明:图文智能排版服务,图像主题标签服务 token 为必选值,获取形式参见:token 获取形式。

4、构建参数对滤镜服务 requestJson 示例:象。


requestJson 字段信息:

滤镜的 taskJson 字段信息:

filterType 映射表:

authJson 映射表:请参见 authJson 表。

滤镜服务 requestJson 示例:

{
  "requestId":"requestId",
  "taskJson":{"intensity":"1","filterType":"1","compressRate":"1"},
  "authJson":{"projectId":"projectIdTest","appId":"appIdTest","authApiKey":"authApiKeyTest","clientSecret":"CSecretTest","clientId":"CIdTest","token":"tokenTest"}
}

5、滤镜服务获取后果。

您在调用 getColorFilter 接口时,须要输出待处理图片的 Bitmap,并抉择须要的滤镜成果。滤镜服务依据传入的参数对原始图片进行解决后,返回解决后图片的 Bitmap。

Java 代码

// 获取 visionResult 返回值 new Thread(new Runnable() {@Override        public void run() {ImageVisionResult visionResult = imageVisionAPI.getColorFilter(requestJson,imageBitmap);        }               }).start();

visionResult 返回值:

response 字段信息:

阐明:调用 getColorFilter 接口时,须要开启一个子线程去执行,不能在主线程执行。

6、进行服务。

当不再须要滤镜成果时,调用该接口进行服务,stopCode 为 0 时,进行服务胜利。

if (null != imageVisionAPI) {int stopCode = imageVisionAPI.stop();}

图文智能排版服务
开发步骤
图文智能排版服务开发步骤如下,须要您提供图片和相干参数,失去相应的返回值。

1、导入图文智能排版服务包。

import com.huawei.hms.image.vision.bean.ImageLayoutInfo ;import com.huawei.hms.image.vision.*;

2、获取图文智能排版服务实例。

// 获取 ImageVisionImpl 对象 ImageVisionImpl imageVisionAPI = ImageVision.getInstance(this);

3、服务初始化,与滤镜服务统一,可参见开发步骤中的相干形容。

构建参数对象。

图文智能排版的 taskJson 字段信息:

阐明
styleList 中,info8 为竖板排版,以后仅反对中文版式,不反对其余语言版式;info3 为默认兜底版式;若用户输出 info8 且输出标签、文本形容有非中文语种,返回用户 info3 版式。
authJson 映射表:请参见 authJson 字段定义。
图文智能排版服务 requestJson 示例:
Java 代码

{"requestId":"requestId",  "taskJson":{"title":"轻奢新生代","description":"远离城市的清静","copyRight":"华为杂志锁屏","isNeedMask":false,"anchor":"查看详情","styleList":["info1"]},  "authJson":{"projectId":"projectIdTest","appId":"appIdTest","authApiKey":"authApiKeyTest","clientSecret":"CSecretTest","clientId":"CIdTest","token":"tokenTest"}}

5、图文智能排版服务获取后果。
在调用 analyzeImageLayout 接口时,须要输出待处理图片 Bitmap 并抉择款式和须要增加的文字等(构建参数)。图文智能排版服务须要联网,如不联网,则默认反回 info3 款式。图文智能排版服务会返回 ImageLayoutInfo 封装类,依据封装类的参数进行 view 绘制(能够参见示例代码绘制形式)。

// 获取 ImageLayoutInfo 返回值 new Thread(new Runnable() {@Override        public void run() {ImageLayoutInfo imageLayoutInfo = imageVisionAPI.analyzeImageLayout(requestJson, imageBitmap);        }               }).start();

ImageLayoutInfo 返回值:

response 字段:

阐明:①因为接口波及网络申请,须要开启子线程去调用接口。②应用图文智能排版服务时,您须要保障提供的 token 是无效的,否则无奈应用该服务。③token 的获取形式可参见 token 获取形式。
6、进行服务。
当不再须要图文智能排版成果时,调用该接口进行服务,stopCode 为 0 时,执行胜利。

if (null != imageVisionAPI) {int stopCode = imageVisionAPI.stop();}

原文链接:https://developer.huawei.com/…
原作者:胡椒

正文完
 0