@hmscore/react-native-hms-mlimage
Version:
React Native HMS ML Image Kit
157 lines (142 loc) • 4.04 kB
JavaScript
/*
* Copyright 2023-2024. Huawei Technologies Co., Ltd. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License")
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { HMSLensEngine, HMSApplication } from '@hmscore/react-native-hms-mlimage';
import { ToastAndroid } from 'react-native';
import * as ImagePicker from "react-native-image-picker"
const options = {
title: 'Choose Method',
storageOptions: {
skipBackup: true,
path: 'images',
},
};
export async function createLensEngine(analyzer, analyzerConfig) {
try {
var result = await HMSLensEngine.createLensEngine(
analyzer,
analyzerConfig,
{
width: 480,
height: 540,
lensType: HMSLensEngine.BACK_LENS,
automaticFocus: true,
fps: 20.0,
flashMode: HMSLensEngine.FLASH_MODE_OFF,
focusMode: HMSLensEngine.FOCUS_MODE_CONTINUOUS_VIDEO
}
)
this.renderResult(result, "Lens engine creation successfull");
} catch (error) {
console.log(error);
}
}
export async function runWithView() {
try {
var result = await HMSLensEngine.runWithView();
this.renderResult(result, "Lens engine running");
} catch (error) {
console.log(error);
}
}
export async function close() {
try {
var result = await HMSLensEngine.close();
this.renderResult(result, "Lens engine closed");
} catch (error) {
console.log(error);
}
}
export async function doZoom(scale) {
try {
var result = await HMSLensEngine.doZoom(scale);
this.renderResult(result, "Lens engine zoomed");
} catch (error) {
console.log(error);
}
}
export async function photograph() {
try {
var result = await HMSLensEngine.photograph();
this.renderResult(result, "Lens engine photo");
} catch (error) {
console.log(error);
}
}
export async function release() {
try {
var result = await HMSLensEngine.release();
this.renderResult(result, "Lens engine released");
} catch (error) {
console.log(error);
}
}
export async function setApiKey() {
try {
var result = await HMSApplication.setApiKey("YOUR-APIKEY");
this.renderResult(result, "Api key set");
} catch (e) {
console.log(e);
}
}
export async function setAccessToken() {
try {
var result = await HMSApplication.setAccessToken("<your_access_token>");
this.renderResult(result, "Access Token set");
} catch (e) {
console.log(e);
}
}
export function showImagePicker() {
var result = new Promise(
function (resolve, reject) {
ImagePicker.launchImageLibrary(options, (response) => {
if (response.didCancel) {
resolve('');
} else if (response.error) {
resolve('');
} else {
resolve(response.assets[0].uri);
}
});
}
);
return result;
}
export function showImagePickerCustom() {
var result = new Promise(
function (resolve, reject) {
ImagePicker.showImagePicker(options, (response) => {
if (response.didCancel) {
resolve('');
} else if (response.error) {
resolve('');
} else {
resolve({uri: response.assets[0].uri, width: response.width, height: response.height});
}
});
}
);
return result;
}
renderResult = (result, message) => {
console.log(result);
if (result.status == HMSApplication.SUCCESS) {
ToastAndroid.showWithGravity(message, ToastAndroid.SHORT, ToastAndroid.BOTTOM);
}
else {
ToastAndroid.showWithGravity(result.message, ToastAndroid.SHORT, ToastAndroid.BOTTOM);
}
}