Ядро Nativescript конвертирует imageAsset в комплект Imagesource ML и интерфейс камеры

Я делаю онлайн-версию распознавания текста с ядром Nativescript и комплектом firebase ML с плагином nativescript-camera (я не знаю, есть ли для этого лучший плагин)

На данный момент у меня есть кнопка с этим событием:

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);
            });
    }
}

и этот код для комплекта мл:

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. Может ли быть что-то более интегрированное в приложение (что-то, что не требует выполнения 3 действий для каждой фотографии), что может подключаться к онлайн-режиму комплекта ML? Что-то вроде этого кода, но работает с облачным методом, а не в реальном времени:

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

person CVO    schedule 29.11.2018    source источник


Ответы (1)


Используйте метод fromAsset в источнике изображения.

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

fromAsset(imageAsset).
   then((imageSource) => {
        .....
    });
person Manoj    schedule 29.11.2018
comment
С этим и const source = new imageSourceModule.ImageSource(); source.fromAsset(imageAsset)... отлично работает. Большое спасибо. - person CVO; 29.11.2018