【问题标题】:Is it possible to process data of camerax preview before displaying it?是否可以在显示之前处理camerax预览的数据?
【发布时间】:2020-01-10 06:53:22
【问题描述】:

我想处理预览中显示的图像并显示处理后的版本。

我尝试使用分析器中的 imageProxy 对其进行修改,但这似乎没有做任何事情。

我知道旧的相机 api 可以做到这一点,但 CameraX 似乎没有 api。

【问题讨论】:

    标签: android android-ndk android-camerax


    【解决方案1】:

    不,cameraX 不支持此流程。实际上,这个用例从来没有 任何 Android 相机 API 都支持。您要做的就是创建自己的渲染器(最好是 OpenGL),隐藏本机预览表面,并将修改后的帧发送到您的渲染器。

    【讨论】:

      【解决方案2】:

      希望这会有所帮助:

      
              val mediaImage = imageProxy.image ?: return
              var bitmap = ImageUtils.convertYuv420888ImageToBitmap(mediaImage)
      
              val rotationDegrees = imageProxy.imageInfo.rotationDegrees
      
              val matrix = Matrix()
              matrix.postRotate(rotationDegrees.toFloat())
      
              bitmap =
                  Bitmap.createBitmap(bitmap, 0, 0, mediaImage.width, mediaImage.height, matrix, true)
              val cropHeight = if (bitmap.width < previewView.width) {
                  // if preview area larger than analysing image
                  val koeff = bitmap.width.toFloat() / previewView.width.toFloat()
                  previewView.height.toFloat() * koeff
              } else {
                  // if preview area smaller than analysing image
                  val prc = 100 - (previewView.width.toFloat() / (bitmap.width.toFloat() / 100f))
                  previewView.height + ((previewView.height.toFloat() / 100f) * prc)
              }
      
              val cropTop = (bitmap.height / 2) - ((cropHeight) / 2)
      
              if (cropTop > 0) {
                  Bitmap.createBitmap(bitmap, 0, cropTop.toInt(), bitmap.width, cropHeight.toInt())
                      .also { process(it, imageProxy) }
              } else {
                  imageProxy.image?.let { process(it, imageProxy) }
              }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-10-19
        • 2014-09-14
        • 1970-01-01
        • 1970-01-01
        • 2011-12-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多