如何从NativeScript Image或ImageAsset获取像素数据

时间:2018-11-11 17:31:42

标签: angular typescript nativescript

我正在尝试从本机脚本中的imageAsset获取图像数据,但是无法从图像中获取像素数据。我该怎么办?

onCameraButtonTap(imageComponentRef: any, htmlDocRef: any): void {
    camera.takePicture().then((imageAsset) => {
        var image = new Image();
        image.src = imageAsset;
        imageComponentRef.src = imageAsset;
    }).catch((error) => {
        console.log(error);
    });
}

我的意思是这样的:image.getRGB(23,45),是从坐标中获取像素rgb数据。

3 个答案:

答案 0 :(得分:0)

还没有插件,但是使用iOS / Android本机api似乎需要几行代码。

请参考文档,将Objective C / Java转换为JavaScript。

答案 1 :(得分:0)

对于Native脚本中的 Android

您需要使用android native位图和Color类来获取RGB。

在课堂上声明android,例如

declare let android: any;

@Component({
....
{)

并将以下代码添加到您的takePicture函数中

camera.takePicture().then((imageAsset) => {
        var image = new Image();
        image.src = imageAsset;
        imageComponentRef.src = imageAsset;
        const imagePath = imageAsset.android;
        const imageAndroidDrawable = android.graphics.drawable.Drawable.createFromPath(imagePath);
            const imageAndroidBitmap = android.graphics.BitmapFactory.decodeFile(imagePath);
            const pixel = imageAndroidBitmap.getPixel(23, 45);
            const redValue =  android.graphics.Color.red(pixel);
            const blueValue = android.graphics.Color.blue(pixel);
            const greenValue = android.graphics.Color.green(pixel);
    }).catch((error) => {
        console.log(error);
    });

答案 2 :(得分:0)

您可以使用nativescript-bitmap-factory从位图对象获取像素

wspace