从实时相机预览中获取特定像素的颜色 - Ionic

时间:2017-10-21 14:15:40

标签: cordova ionic-framework mobile camera ionic3

我尝试使用Ionic重新创建与此类似的功能:http://tvbarthel.fr/CameraColorPicker/resources/Screenshot_2015-05-17-17-04-27_framed.png

屏幕截图演示了实时相机预览中的内圈,它会抓住颜色以及显示当前正在查看的像素颜色的外圈。

我使用叠加层进行实时相机预览但是我不知道从屏幕上的特定位置抓取颜色从哪里开始。

我知道你可以拍照并抓住那种颜色,但这不是我所追求的功能,我正在寻找能让我实时看到结果的东西。

可以实现此功能吗?如果是这样,我该怎么做?

1 个答案:

答案 0 :(得分:1)

  

可以实现此功能吗?如果是这样,我该怎么办?

我在应用程序中遇到了类似情况,因此认为这会有所帮助。

我正在创建用于实时图像处理的Cordova-Angular Hybrid应用程序:

  1. 打开前置摄像头,并在摄像头前面显示不同的对象。

  2. 如果在字典中找到对象,则显示成功消息并停止预览。

以下是步骤:

  1. 创建了一个新的 Cordova插件,该插件可在预览模式下启动相机。要获取预览的当前图像,您需要覆盖 onPreviewFrame 方法。

  2. 获取缓冲区图像并将其转换并匹配。

  3. 基于成功/失败,调用callBack方法。

现在我认为在您的情况下,步骤1将与其他步骤相同。

  1. 创建新的 Cordova插件,它将在预览模式下启动相机。要获取预览的当前图像,您需要覆盖 onPreviewFrame 方法。

  2. 重写 onTouchEvent 方法以计算ImageView内部的点,同时计算 onPreviewFrame 方法内部的帧的像素。

    < / li>
  3. 获取结果后,只需用结果更新视图即可。

我还认为该离子应用程序的主要部分仍然是原生的。Cordova会进行桥接。

参考文献:

  1. http://topandroidphones1.blogspot.com/2012/04/get-color-on-specified-location-from.html

  2. OnPreviewFrame data image to imageView

  3. Get the touch position inside the imageview in android

  4. How to Get Pixel Color in Android

  5. Capturing the Camera Preview with a PreviewCallback