Nativescript核心将imageAsset转换为Imagesource ML套件和相机接口

时间:2018-11-29 09:18:50

标签: javascript camera nativescript imagesource firebase-mlkit

我正在使用Nativescript核心和带nativescript-camera插件的firebase ML套件进行文本识别的在线版本(我不知道是否有更好的插件)

此刻,我对此事件有一个看法:

exports.onCapture = function () {
    if (camera.isAvailable()) {
        var options = { width: 300, height: 300, keepAspectRatio: false, saveToGallery: false};
        camera.takePicture(options)   
            .then(function (imageAsset) {
                getTextFromPhotoCloud("HOW TO CONVERT imageAsset TO IMAGESOURCE"); 
            }).catch(function (err) {
                console.log("Error -> " + err.message);
            });
    }
}

以及ml套件的以下代码:

function getTextFromPhotoCloud(imageSource) {
    var firebase = require("nativescript-plugin-firebase");

    firebase.mlkit.textrecognition.recognizeTextCloud({
        image: imageSource
    }).then(function (result) {
        console.log(result.text ? result.text : "");
    }).catch(function (errorMessage) {
        return console.log("ML Kit error: " + errorMessage);
    });
}

如何将相机响应转换为图像源格式(对于ML套件)而不保存在图库中?

相机是否有更好的插件或其他产品?实际上,我必须启动相机应用程序,拍照并接受预览才能启动ML工具包。可以在应用程序中集成一些可以连接到ML工具包在线模式的东西(不需要为每张照片执行3个操作)吗?像这样的代码,有点不能使用云方法,而是不能实时进行:

<MLKitTextRecognition
    class="my-class"
    width="260"
    height="380"
    processEveryNthFrame="10"
    preferFrontCamera="false"
    [pause]="pause"
    [torchOn]="torchOn"
    (scanResult)="onTextRecognitionResult($event)">
</MLKitTextRecognition>

1 个答案:

答案 0 :(得分:2)

在图像源中使用fromAsset方法。

import { fromAsset } from "tns-core-modules/image-source"

fromAsset(imageAsset).
   then((imageSource) => {
        .....
    });