Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android studio 我拍照并从同一应用程序进入gallery提取图像,如何读取提取图像的路径?_Android Studio_Opencv - Fatal编程技术网

Android studio 我拍照并从同一应用程序进入gallery提取图像,如何读取提取图像的路径?

Android studio 我拍照并从同一应用程序进入gallery提取图像,如何读取提取图像的路径?,android-studio,opencv,Android Studio,Opencv,我正在开发一个应用程序来拍摄照片并从图库中绘制,它可以很好地捕捉照片,但如果我从应用程序进入图库,则不会显示图像,但如果我离开应用程序并进入图库,则会显示照片,当我从应用程序重新进入图库时,它已经显示图像。 我想知道是否有一种方法可以让图像立即显示给我,但不必离开应用程序 公共类MainActivity扩展了AppCompatActivity{ 最终文件ruta_fotos=Environment.getExternalStoragePublicDirectory(Environment.DIR

我正在开发一个应用程序来拍摄照片并从图库中绘制,它可以很好地捕捉照片,但如果我从应用程序进入图库,则不会显示图像,但如果我离开应用程序并进入图库,则会显示照片,当我从应用程序重新进入图库时,它已经显示图像。 我想知道是否有一种方法可以让图像立即显示给我,但不必离开应用程序

公共类MainActivity扩展了AppCompatActivity{ 最终文件ruta_fotos=Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES); 最终文件=新文件(ruta_fotos,“DemoPicture.jpg”); 私人按钮按钮; ImageView imagen

public int cuenta=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    imagen=(ImageView) findViewById(R.id.imagemId);

    boton = (Button) findViewById(R.id.btnTomaFoto);
    //Si no existe crea la carpeta donde se guardaran las fotos
    file.mkdirs();
    //accion para el boton

    boton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            String file = ruta_fotos + getCode() + ".jpg";
            File mi_foto = new File( file );
            try {
                mi_foto.createNewFile();
            } catch (IOException ex) {
                Log.e("ERROR ", "Error:" + ex);
            }
            //
            Uri uri = Uri.fromFile( mi_foto );
            //Abre la camara para tomar la foto
            Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
            //Guarda imagen
            cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
            //Retorna a la actividad

            startActivityForResult(cameraIntent, 0);
        }

    });

}

@SuppressLint("SimpleDateFormat")
private String getCode()
{
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyymmddhhmmss");
    String date = dateFormat.format(new Date() );
    String photoCode = "pic_" + date;
    return photoCode;
}


public void Click(View view) {
    cargarImagen();
}
private void cargarImagen (){
    Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
    intent.setType("image/");
    startActivityForResult(intent.createChooser(intent,"seleccione a la aplicacion"),10);
    cuenta=1;
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if(resultCode==RESULT_OK && cuenta==1){
        Uri path= data.getData();
        imagen.setImageURI(path);


    }
}
} 下一行我读了imageView中预定的imegen,但我想让你读一下从gallery中提取的图像,我怎么能做到?
Mat img=imread(Environment.getExternalStorageDirectory().getAbsolutePath()+“/colorbolls.jpg”)

您必须通过sendBroadcast添加图像,它将自动在gallery中显示您的图像,这意味着刷新您的gallery。捕获图像uri后,将下面的代码放在ActivityResult上

sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, path));