una resolucion pantalla moto mejorar k10 hacer configurar como celular captura camara calidad aumentar alta android android-camera-intent

android - resolucion - Baja calidad de imagen/imagen cuando se captura desde la cámara



mejorar calidad captura de pantalla android (2)

Tengo un problema. Cuando trato de obtener una imagen de la cámara, la calidad es muy baja. Al principio, capture la imagen usando la cámara, luego guárdela en el directorio y al mismo tiempo obtenga esa imagen y la muestre en mi aplicación. La imagen guardada en el directorio es de buena calidad, pero cuando la obtengo del directorio, la calidad es baja. a continuación está mi código de muestra:

public void onActivityResult(int requestCode, int resultCode, Intent intent) { if (requestCode == CAMERA_PIC_REQUEST) { Bitmap thumbnail = (Bitmap) intent.getExtras().get("data"); if (g==1) { ImageView myImage = (ImageView) findViewById(R.id.img5); myImage.setImageBitmap(thumbnail); View a = findViewById(R.id.img5); a.setVisibility(View.VISIBLE); ByteArrayOutputStream stream = new ByteArrayOutputStream(); thumbnail.compress(Bitmap.CompressFormat.JPEG, 100, stream); byteArray1 = stream.toByteArray(); } }

cualquier solución / sugerencia? Gracias :)

Resuelto

El problema se resuelve cuando sigo el código dado por Antrromet continuación


He usado el siguiente código y esto funciona perfectamente bien para mí.

values = new ContentValues(); values.put(MediaStore.Images.Media.TITLE, "New Picture"); values.put(MediaStore.Images.Media.DESCRIPTION, "From your Camera"); imageUri = getContentResolver().insert( MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values); Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri); startActivityForResult(intent, PICTURE_RESULT);

y también

protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode) { case PICTURE_RESULT: if (requestCode == PICTURE_RESULT) if (resultCode == Activity.RESULT_OK) { try { thumbnail = MediaStore.Images.Media.getBitmap( getContentResolver(), imageUri); imgView.setImageBitmap(thumbnail); imageurl = getRealPathFromURI(imageUri); } catch (Exception e) { e.printStackTrace(); } } } }

y

public String getRealPathFromURI(Uri contentUri) { String[] proj = { MediaStore.Images.Media.DATA }; Cursor cursor = managedQuery(contentUri, proj, null, null, null); int column_index = cursor .getColumnIndexOrThrow(MediaStore.Images.Media.DATA); cursor.moveToFirst(); return cursor.getString(column_index); }


Te daré algo que funcione para mí. ¡Pregunté lo mismo!

Solución para guardar una imagen en una carpeta específica sin pérdida de calidad

ENCONTRÉ LA SOLUCIÓN:

// Crea un nuevo código de carpeta:

String path = String.valueOf(Environment.getExternalStorageDirectory()) + "/your_name_folder"; try { File ruta_sd = new File(path); File folder = new File(ruta_sd.getAbsolutePath(), nameFol); boolean success = true; if (!folder.exists()) { success = folder.mkdir(); } if (success) { Toast.makeText(MainActivity.this, "Carpeta Creada...", Toast.LENGTH_SHORT).show(); } } catch (Exception ex) { Log.e("Carpetas", "Error al crear Carpeta a tarjeta SD"); } Intent i = new Intent(MainActivity.this, MainActivity.class); startActivity(i); finish();//agregue este

// Método para tomar una foto

public void clickFoto(View view) { takePic(); }

// takePic ()

private void takePic() { String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date()); *File file = new File(Environment.getExternalStorageDirectory(), "/your_name_folder/a" + "/photo_" + timeStamp + ".png");* imageUri = Uri.fromFile(file); Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri); startActivityForResult(intent, PICTURE_RESULT); }

// onActivityResult

public void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode) { case PICTURE_RESULT: if (requestCode == PICTURE_RESULT) if (resultCode == Activity.RESULT_OK) { try { Bitmap thumbnail = MediaStore.Images.Media.getBitmap( getContentResolver(), imageUri); imgFoto.setImageBitmap(thumbnail); imageurl = getRealPathFromURI(imageUri); } catch (Exception e) { e.printStackTrace(); } } } }

// getRealPathFromUri

public String getRealPathFromURI(Uri contentUri) { String[] proj = {MediaStore.Images.Media.DATA}; Cursor cursor = managedQuery(contentUri, proj, null, null, null); int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); cursor.moveToFirst(); return cursor.getString(column_index); }