1、引言

随着手机拍照性能日益弱小,拍照和修图成了咱们每个人的必备技能,正所谓“拍照五分钟,修图两小时”难看的图片也成为很多年轻人的社交工具。因而,滤镜和修图成了很多社交APP内必不可少的性能。那么,如何给本人的APP增加一个滤镜性能呢?能够接入HUAWEI Image Kit, 提供24款色彩滤镜进行图像优化,帮忙你疾速实现滤镜性能。

2、性能演示和示例代码

如果你对实现形式感兴趣,能够去Github去下载源代码,能够基于具体利用场景优化。

Github demo下载地址:https://github.com/HMS-Core/hms-image-vision

3、筹备工作

步骤1:配置AppGallery Connect

集成HUAWEI HMS Core能力,须要实现以下筹备工作:

  • 注册成为华为开发者
  • 创立AppGallery Connect利用
  • 创立Android Studio工程
  • 生成签名证书
  • 生成签名证书指纹
  • 配置签名证书指纹
  • 增加利用包名并保留配置文件
  • 配置Maven仓地址及AppGallery Connect gradle插件
  • 在Android Studio配置签名文件

具体操作,请依照《HUAWEI HMS Core集成筹备》中具体阐明来实现。

步骤2:关上Android Studio

步骤3:抉择“File > Open > 示例工程解压门路”,点击“OK”

步骤4:增加HUAWEI agcp插件、配置仓库、依赖包、混同脚本、权限(示例代码中曾经配好,但后续你的工程须要参考配置)

1.在我的项目级“build.gradle”中配置maven仓库门路及HUAWEI agcp插件

  • 在“allprojects > repositories”外面配置HMS SDK的maven仓地址
allprojects {           repositories {           maven { url 'https://developer.huawei.com/repo/' }           …      }   }
  • 在“buildscript > repositories”外面配置HMS SDK的maven仓地址
buildscript {       repositories {           maven {url 'https://developer.huawei.com/repo/'}           …       }       …  }
  • 在“buildscript > dependencies”外面减少配置
buildscript{      dependencies {          classpath 'com.huawei.agconnect:agcp:1.3.1.300'      }  }

2.在利用级“build.gradle”中配置依赖包

  • 在“dependencies”中增加依赖包
dependencies {      …              implementation 'com.huawei.hms:image-vision:1.0.2.301'      …  }
  • 配置minSdkVersion
android {      ...      defaultConfig {          ...          minSdkVersion 26          ...      }      ...  }
  • 在文件头增加配置
apply plugin: 'com.huawei.agconnect'

阐明:apply plugin: 'com.huawei.agconnect'须要在apply plugin:'com.android.application'之后配置。

3.配置混同脚本

  • 在“app/proguard-rules.pro”文件中配置
-ignorewarnings  -keepattributes *Annotation*  -keepattributes Exceptions  -keepattributes InnerClasses  -keepattributes Signature  -keepattributes SourceFile,LineNumberTable  -keep class com.hianalytics.android.**{*;}  -keep class com.huawei.updatesdk.**{*;}  -keep class com.huawei.hms.**{*;}
  • 如果开发者应用了AndResGuard,须要在混同配置文件中退出AndResGuard白名单
"R.string.hms*",  "R.string.connect_server_fail_prompt_toast",  "R.string.getting_message_fail_prompt_toast",  "R.string.no_available_network_prompt_toast",  "R.string.third_app_*",  "R.string.upsdk_*",  "R.layout.hms*",  "R.layout.upsdk_*",   "R.drawable.upsdk*",  "R.color.upsdk*",   "R.dimen.upsdk*",  "R.style.upsdk*",  "R.string.agc*"

4.在“AndroidManifest.xml”文件中配置权限

<uses-permission android:name="android.permission.INTERNET"/>  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />  <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

步骤5:抉择Android Studio的“File > Sync Project with Gradle Files”,同步工程。

4.在“AndroidManifest.xml”文件中配置权限

步骤1:新建一个Activity,导入服务包。

public class ImageKitVisionDemoActivity extends AppCompatActivity implements View.OnClickListener

导包

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

实现onCreate办法,在办法里关联activity_main.xml布局:setContentView(R.layout.activity_filter);

步骤2:新建一个activity_main.xml布局文件

定义有按钮和文本编辑布局:

<EditText     android:id="@+id/btn_filter"     android:layout_width="wrap_content"     android:layout_height="wrap_content"     android:hint="filterType(0-24)" />  <Button     android:id="@+id/btn_init"     android:layout_width="wrap_content"     android:layout_height="wrap_content"     android:text="Init_Service" />

步骤3:在ImageKitVisionDemoActivity中定义变量,在onCreate办法中关联变量与activity_main.xml中按钮和文本编辑布局

//定义文本编辑和按钮private EditText btn_filter;private Button btn_init;//通过布局id,关联文本编辑变量和布局中文本编辑框btn_filter = findViewById(R.id.btn_filter);//通过布局id,关联按钮变量和布局中按钮btn_init = findViewById(R.id.btn_init);//设置按钮监听事件btn_init.setOnClickListener(this);

步骤4:重写onClick办法,定义每个点击事件调用的办法,示例:

@Override public void onClick(View v) {     switch (v.getId()) {         case R.id.btn_init:             initFilter(context);             break;     } }

步骤5:获取服务实例:该步骤次要是获取滤镜服务实例,例如,获取滤镜效果图等,写在上述监听点击事件中initFilter办法中。

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

步骤6:服务初始化,写在上述监听点击事件中initFilter办法中

调用setVisionCallBack时须要实现ImageVision的VisionCallBack接口,重写其中的onSuccess(ImageVisionImpl imageVision)和onFailure(int errorCode)办法。初始化框架胜利时会回调onSuccess办法,初始化滤镜服务。初始化失败时会回调onFailure办法,传回失败错误码。调用初始化接口时,只有通过校验,第三方利用能力应用场景智能设计服务,初始化胜利。

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

入参authJson:

阐明:以上参数除了token之外,都可在agconnect-services.json文件中查找(参考开发指南)。因平安问题,示例代码中未显示实在鉴权信息,你在开发时需填写实在的鉴权信息。

步骤7:构建参数对象requestJson。

入参requestJson和imageBitmap:

requestJson字段信息:

taskJson字段信息:

filterType映射表:

requestJson 示例:

步骤8:获取渲染图。定义一个按钮,监听点击事件,通过点击事件调用接口,留神:调取接口时,须要开启一个子线程去执行,不能在主线程执行。

ImageVisionResult返回值:

response字段信息:

步骤9:进行服务。

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

5. 结束语

至此咱们就已实现了滤镜性能开发,借助HMS Image Kit不须要破费太多工夫就能给APP增加滤镜性能至此咱们滤镜性能开发实现,借助HMS ImageKit只须要调用滤镜接口就能够给APP增加滤镜性能,简略易用,这24款滤镜也会给用户带来更多的抉择和良好的体验。

欲了解更多详情,请参阅:

华为开发者联盟官网:https://developer.huawei.com/consumer/en/hms

获取开发领导文档:https://developer.huawei.com/consumer/en/doc/development

参加开发者探讨请到Reddit社区:https://www.reddit.com/r/HMSCore/

下载demo和示例代码请到Github:https://github.com/HMS-Core

解决集成问题请到Stack Overflow:https://stackoverflow.com/questions/tagged/huawei-mobile-services?tab=Newest


原文链接:https://developer.huawei.com/consumer/cn/forum/topicview?tid=0203351141059660527&fid=18
作者:梦阳