java - 从 TextureView 获取图像的一部分

标签 java android android-camera2

我正在使用来自 Android Developers Samples 的相机代码在预览时获取图像的一部分并对其进行一些处理。

我想获取预览中从 [0,0] 到 [99,99] 的正方形图像,对其进行处理并在 ImageView 中动态显示。我尝试通过输入以下代码来获取当前图像:

final Activity activity = getActivity();
activity.runOnUiThread(new Runnable() {
  @Override
  public void run() {
    final Bitmap originalBitmap = mTextureView.getBitmap();
    // more code here
 }
});

at this part of the code .通过调用 getBitmap(),它使应用程序变得非常慢。

有没有一种有效的方法来以 1:1 的比例获得我需要的方形部分?

我知道我可以用更小的尺寸调用 getBitmap() 并使其更快,但我想避免丢失数据。

最佳答案

这是为了什么?

CustomView mTextureView = new CustomView(getApplicationContext());
new Task().execute(mTextureView.getBitmap());

这是异步任务

 public class Task extends AsyncTask<Bitmap, Void, Void> {

    public Task() {

    }

    @Override
    protected Void doInBackground(Bitmap... objects) {
        //... do stuff
        return null;
    }

    @Override
    protected void onPostExecute(Void result) {
        super.onPostExecute(result);
   }
}

关于java - 从 TextureView 获取图像的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35537424/

相关文章:

android - 是否可以将 cameraX 或 Camera2 缩放到 Api 最大缩放限制之外

java - 库没有JAVADOC代码完整求助

java - 我如何使用java来获取字符串中的两到两个数字并转换它们

java - IllegalMonitorStateException - CyclicBarrier

java - 替换 LinkedList 中的节点实际上并没有替换任何内容

android - 如何在 Android 设备上禁用 "Re-start: Cold restart"物理按钮

android - 当任何其他应用程序使用或打开相机时如何通知我

java - 我可以对具有两个主键的数据库进行两次选择吗?

Android- Hello World

Android Camera2 API 裁剪视频