2015-12-11 2 views
-1

У меня проблема с камерой Capture Image.its устанавливается размытым.Камера Capture Изображение нечеткое (размытое) в Android

Я искал много, но я не могу получить Solutions

Я не знаю, как решить вопрос

Вот мой код, который я использовал для захвата изображения с камеры

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 

    if (resultCode == Activity.RESULT_OK) { 
     if (requestCode == SELECT_FILE) 
      onSelectFromGalleryResult(data); 
     else if (requestCode == REQUEST_CAMERA) 
      onCaptureImageResult(data); 
    } 
} 

private void onCaptureImageResult(Intent data) { 
    Bitmap thumbnail = (Bitmap) data.getExtras().get("data"); 
    ByteArrayOutputStream bytes = new ByteArrayOutputStream(); 
    thumbnail.compress(Bitmap.CompressFormat.JPEG, 0, bytes); 

    File destination = new File(Environment.getExternalStorageDirectory(), 
      System.currentTimeMillis() + ".jpg"); 

    FileOutputStream fo; 
    try { 
     destination.createNewFile(); 
     fo = new FileOutputStream(destination); 
     fo.write(bytes.toByteArray()); 
     fo.close(); 
    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 


    img1.setImageBitmap(thumbnail); 
} 

@SuppressWarnings("deprecation") 
private void onSelectFromGalleryResult(Intent data) { 
    Uri selectedImageUri = data.getData(); 
    String[] projection = {MediaStore.MediaColumns.DATA}; 
    Cursor cursor = managedQuery(selectedImageUri, projection, null, null, 
      null); 
    int column_index = cursor.getColumnIndexOrThrow(MediaStore.MediaColumns.DATA); 
    cursor.moveToFirst(); 

    String selectedImagePath = cursor.getString(column_index); 

    Bitmap bm; 
    BitmapFactory.Options options = new BitmapFactory.Options(); 
    options.inJustDecodeBounds = true; 
    BitmapFactory.decodeFile(selectedImagePath, options); 
    final int REQUIRED_SIZE = 200; 
    int scale = 1; 
    while (options.outWidth/scale/2 >= REQUIRED_SIZE 
      && options.outHeight/scale/2 >= REQUIRED_SIZE) 
     scale *= 2; 
    options.inSampleSize = scale; 
    options.inJustDecodeBounds = false; 
    bm = BitmapFactory.decodeFile(selectedImagePath, options); 

    img1.setImageBitmap(bm); 

} 

Набор изображений галереи хорошо в изображении, но его действие происходит только с CameraCapture Imageview Camera Capture Image is not clear(Blurry) in Android

Помогите мне за t его проблема.

Заранее спасибо

ответ

0

Что вы делаете получаете гвоздь миниатюры из умысла данных, поэтому он является расплывчатым

Попробуйте: Файла mImageFile это путь, по которому вы хотите сохранить вам файл изображения камеры.

mImageFile= new File(Environment.getExternalStorageDirectory() + File.separator + "DCIM" + File.separator + "temp.png"); 

Uri tempURI = Uri.fromFile(mImageFile); 
Intent i = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
i.putExtra(MediaStore.EXTRA_OUTPUT, tempURI); 
activity.startActivityForResult(i, CHOOSE_CAMERA_RESULT); 


then in your onActivityResult 

@Override 
public void onActivityResultRAW(int requestCode, int resultCode, Intent data) 
{ 
    super.onActivityResultRAW(requestCode, resultCode, data); 
    switch(requestCode) 
    { 
    case CHOOSE_CAMERA_RESULT: 
    { 
     if (resultCode == RESULT_OK) 
     { 
      // here you image has been save to the path mImageFile. 
      Log.d("ImagePath", "Image saved to path : " + mImageFile.getAbsoultePath()); 
     } 
    } 
    break; 
    } 
} 
+0

i hava a Two Option Gallery или Camera SO Как я могу изменить его. Помогите мне Modifi это. @ Dex –

+0

Цель намерения = новое намерение (MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult (намерение, REQUEST_CAMERA); Я использовал это для Open Camera @dex –

+0

@RushangPrajapati: после того, как вы нажмете на кнопку камеры, вызовите код активации StartCamera, после того, как вы нажмете кнопку мыши, затем в OnActivityResult вы можете получить изображение ... соответственно. Для галереи вы можете вызвать галерею через Intent intent = new Intent (Intent.ACTION_GET_CONTENT); intent.addCategory (Intent.CATEGORY_OPENABLE); intent.setType ("image/*"); startActivityForResult (намерение, Gallery_code), затем в onActivityResult вы получите URI, openInputStream из этого uri, чтобы получить растровое изображение. – dex

0

Ваша проблема здесь

thumbnail.compress(Bitmap.CompressFormat.JPEG, 0, bytes); 

Второй в .compress В параметре() метод является качество, которое может быть в диапазоне 0..100. Вы установили его в 0 -> максимальное сжатие.

Измените значение на большее значение.

Смежные вопросы