Comment mettre en œuvre rapidement la fonction de filtrage avec Huawei Image Service

1. Introduction

Avec les fonctions d'appareil photo de plus en plus puissantes des téléphones portables, prendre des photos et retoucher des photos est devenu une compétence essentielle pour chacun de nous. Les "cinq minutes pour prendre des photos et deux heures pour retoucher" de belles photos sont également devenues des outils sociaux pour de nombreux jeunes. Par conséquent, les filtres et l'édition de photos sont devenus des fonctions essentielles dans de nombreuses applications sociales. Alors, comment ajouter une fonction de filtrage à votre APP? Il peut être connecté au kit d'images HUAWEI, fournissant 24 filtres de couleur pour l'optimisation de l'image, vous aidant à réaliser rapidement la fonction de filtre.

2. Démonstration de fonction et exemple de code

Comment mettre en œuvre rapidement la fonction de filtrage avec Huawei Image Service

Si vous êtes intéressé par l'implémentation, vous pouvez vous rendre sur Github pour télécharger le code source, qui peut être optimisé en fonction de scénarios d'application spécifiques.

Adresse de téléchargement de la démo Github:https://github.com/HMS-Core/hms-image-vision

3. Préparation

Étape 1 : Configurez AppGallery Connect

Pour intégrer les fonctionnalités de HUAWEI HMS Core, les préparatifs suivants doivent être effectués:

  • Inscrivez-vous en tant que développeur Huawei

  • Créer une application AppGallery Connect

  • Créer un projet Android Studio

  • Générer un certificat signé

  • Générer l'empreinte du certificat de signature

  • Configurer l'empreinte du certificat de signature

  • Ajouter le nom du package d'application et enregistrer le fichier de configuration

  • Configurer l'adresse de l'entrepôt Maven et le plugin Gradle AppGallery Connect

  • Configurer le fichier de signature dans Android Studio

Pour des opérations spécifiques, veuillez suivre les instructions détaillées de la section «Préparation à l'intégration HUAWEI HMS Core» pour terminer.

Étape 2 : Ouvrez Android Studio
Insérez la description de l'image ici

Étape 3 : Sélectionnez "Fichier> Ouvrir> Exemple de chemin de décompression du projet" et cliquez sur "OK"

Étape 4 : Ajoutez le plug-in HUAWEI agcp, le référentiel de configuration, le package de dépendances, le script masqué, les autorisations (l'exemple de code est déjà configuré, mais vous devez vous référer à la configuration pour les projets suivants)

1. Configurez le chemin du référentiel maven et le plugin HUAWEI agcp dans le "build.gradle" au niveau du projet

  • Configurez l'adresse du référentiel maven du SDK HMS dans "tous les projets> référentiels"
allprojects {      
     repositories { 
          maven { url 'https://developer.huawei.com/repo/' } 
          … 
     } 
  }
  • Configurez l'adresse du référentiel maven du SDK HMS dans "buildscript> référentiels"
buildscript { 
      repositories { 
          maven {url 'https://developer.huawei.com/repo/'} 
          … 
      } 
      … 
 }
  • Ajouter une configuration dans "buildscript> dépendances"
buildscript{ 
     dependencies { 
         classpath 'com.huawei.agconnect:agcp:1.3.1.300' 
     } 
 }

2. Configurez les packages dépendants dans le niveau de l'application "build.gradle"

  • Ajouter des packages de dépendances dans les "dépendances"
dependencies { 
     … 
             implementation 'com.huawei.hms:image-vision:1.0.2.301' 
     … 
 }
  • Configurer minSdkVersion
android { 
     ... 
     defaultConfig { 
         ... 
         minSdkVersion 26 
         ... 
     } 
     ... 
 }
  • Ajouter la configuration à l'en-tête du fichier
apply plugin: 'com.huawei.agconnect'

Remarque: appliquer le plugin: 'com.huawei.agconnect' doit être configuré après appliquer le plugin: 'com.android.application'.

3. Configurer le script obscurci

  • Configurer dans le fichier "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.**{*;}
  • Si le développeur utilise AndResGuard, vous devez ajouter la liste blanche AndResGuard dans le fichier de configuration obscurci
"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. Configurez les autorisations dans le fichier "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" />

Étape 5 : Sélectionnez "Fichier> Synchroniser le projet avec les fichiers Gradle" dans Android Studio pour synchroniser le projet.

4. Configurez les autorisations dans le fichier "AndroidManifest.xml"

Étape 1: Créez une nouvelle activité et importez le Service Pack.

public class ImageKitVisionDemoActivity extends AppCompatActivity implements View.OnClickListener

Paquet de guide

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

Implémentez la méthode onCreate et associez la mise en page activity_main.xml dans la méthode: setContentView (R.layout.activity_filter);

Étape 2 : créer un nouveau fichier de mise en page activity_main.xml

Définir la disposition des boutons et de l'édition de texte:

<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" />

Étape 3 : Définissez des variables dans ImageKitVisionDemoActivity, associez les variables de la méthode onCreate au bouton et à la disposition d'édition de texte dans 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);

Étape 4 : Réécrivez la méthode onClick et définissez la méthode à appeler par chaque événement de clic. Exemple:

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

Étape 5 : Obtenir une instance de service: Cette étape consiste principalement à obtenir une instance de service de filtrage, par exemple, obtenir un rendu de filtre, etc., écrit dans la méthode initFilter dans l'événement de clic de surveillance ci-dessus.

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

Étape 6 : Initialisation du service, écrite dans la méthode initFilter dans l'événement de clic de surveillance ci-dessus

Lors de l'appel de setVisionCallBack, il est nécessaire d'implémenter l'interface VisionCallBack d'ImageVision et de remplacer les méthodes onSuccess (ImageVisionImpl imageVision) et onFailure (int errorCode). Lorsque le framework est initialisé avec succès, la méthode onSuccess sera rappelée pour initialiser le service de filtrage. Lorsque l'initialisation échoue, la méthode onFailure sera rappelée et le code d'erreur d'échec sera renvoyé. Lorsque l'interface d'initialisation est appelée, l'application tierce ne peut utiliser le service de conception intelligente de scène que par vérification, et l'initialisation est réussie.

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

Entrez authJson:
Insérez la description de l'image ici

Remarque: Tous les paramètres ci-dessus se trouvent dans le fichier agconnect-services.json à l'exception du jeton (reportez-vous au guide de développement). En raison de problèmes de sécurité, les informations d'authentification réelles ne sont pas affichées dans l'exemple de code. Vous devez renseigner les informations d'authentification réelles pendant le développement.

Étape 7 : Construisez l'objet de paramètre requestJson.

Entrez requestJson et imageBitmap:
Insérez la description de l'image ici

information du champ requestJson:
Insérez la description de l'image ici

Informations sur le champ taskJson:
Insérez la description de l'image ici

Table de mappage filterType:
Insérez la description de l'image ici
Insérez la description de l'image ici

Exemple de requestJson:

Étape 8 : Obtenez une image de rendu. Définissez un bouton, écoutez l'événement click et appelez l'interface via l'événement click Remarque: lorsque vous appelez l'interface, vous devez ouvrir un thread enfant pour l'exécuter, pas le thread principal.

Valeur de retour ImageVisionResult:
Insérez la description de l'image ici

Informations sur le champ de réponse:
Insérez la description de l'image ici

Étape 9 : Arrêtez le service.

Lorsque l'effet de filtre n'est plus nécessaire, appelez cette interface pour arrêter le service. Lorsque stopCode vaut 0, l'exécution est réussie.

5. Conclusion

Jusqu'à présent, nous avons terminé le développement de la fonction de filtre. Avec l'aide de HMS Image Kit, il ne prend pas trop de temps pour ajouter la fonction de filtre à l'APP. Jusqu'à présent, nous avons terminé le développement de la fonction de filtre. Avec l'aide de HMS ImageKit, il suffit d'appeler l'interface de filtre pour donner l'APP Ajoutez une fonction de filtre, facile à utiliser, ces 24 filtres donneront également aux utilisateurs plus de choix et une bonne expérience.

Pour plus de détails, veuillez consulter:

Site officiel de Huawei Developer Alliance:https://developer.huawei.com/consumer/en/hms

Obtenez des documents d'orientation de développement:https://developer.huawei.com/consumer/en/doc/development

Pour participer aux discussions des développeurs, veuillez vous rendre sur la communauté Reddit:https://www.reddit.com/r/HMSCore/

Pour télécharger la démo et l'exemple de code, rendez-vous sur Github:https://github.com/HMS-Core

Pour résoudre les problèmes d'intégration, accédez à Stack Overflow:https://stackoverflow.com/questions/tagged/huawei-mobile-services?tab=Newest


Lien d'origine:https://developer.huawei.com/consumer/cn/forum/topicview?tid=0203351141059660527&fid=18
Auteur: Meng Yang

Je suppose que tu aimes

Origine blog.51cto.com/14772288/2544198
conseillé
Classement