从TextureView获取图像的一部分

时间:2016-02-21 14:34:13

标签: 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()并使其更快但我想避免丢失数据。

1 个答案:

答案 0 :(得分:2)

关于这个怎么样?

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

这是asynctask

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