Intereting Posts

Низкое качество изображения / изображения при захвате с камеры

У меня есть одна проблема. Когда я пытаюсь получить изображение с камеры, качество очень низкое. Сначала захватите изображение с помощью камеры, а затем сохраните его в каталоге и в то же время получите его и покажите в своем приложении. Картинка, сохраненная внутри каталога, является прекрасным качеством, но когда я получаю ее из каталога, качество низкое. Ниже мой пример кода:

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

Любое решение / предложение? Благодаря 🙂

решаемая

Проблема решена, когда я следую коду, указанному Antrromet ниже

Solutions Collecting From Web of "Низкое качество изображения / изображения при захвате с камеры"

Я использовал следующий код, и это работает отлично для меня.

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

а также

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

а также

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

Я дам вам то, что работает для меня. Я спросил то же самое!

Решение для сохранения изображения в определенной папке без потери качества

Я нашел решение:

// Создаем новый код папки:

  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 

// Метод для съемки

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