2012-06-09 2 views
1

В приложении, над которым я работаю, кнопка открывает камеру. Когда вы делаете снимок, этот снимок загружается в приложение в виде растрового изображения. Изображения очень неровные. Как увеличить качество растрового изображения после его загрузки в мое приложение?Как увеличить качество растрового изображения?

код до сих пор:

private static final int CAMERA_PIC_REQUEST = 2500; 




@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 



    Button capture = (Button) findViewById(R.id.captureButton); 
    Button flip = (Button) findViewById(R.id.flipButton); 
    final TextView text = (TextView) findViewById(R.id.text); 


    capture.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View v) { 
      Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
      text.setVisibility(View.GONE); 
      startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST); 
     } 
    }); 


    flip.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View v) { 




     } 
    }); 
} 

protected void onActivityResult(int requestCode, int resultCode, Intent data){ 
    if(requestCode == CAMERA_PIC_REQUEST){ 
     Bitmap image = (Bitmap) data.getExtras().get("data"); 
     ImageView imageView = (ImageView) findViewById(R.id.ImageView01); 
     imageView.setImageBitmap(image); 
    } 
    } 
} 

ответ

3

Не получить это изображение из данных, это всегда низкое качество изображения. Попробуйте использовать путь к файлу и получить изображение из пути к файлу.

Камеру

Intent intent = new Intent("android.media.action.IMAGE_CAPTURE"); 
intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1); 
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(path)); 
startActivityForResult(intent, CAMERA_PIC_REQUEST); 

И когда вы вернетесь к onActivityResult изображение будет сохранено на ваш определенный путь. Вы можете получить изображение с высоким разрешением оттуда. Или вы также можете использовать функцию для получения последнего снятого изображения ...

private String getLastImagePath() { 
     final String[] imageColumns = { MediaStore.Images.Media._ID, 
       MediaStore.Images.Media.DATA }; 
     final String imageOrderBy = MediaStore.Images.Media._ID + " DESC"; 
     Cursor imageCursor = managedQuery(
       MediaStore.Images.Media.EXTERNAL_CONTENT_URI, imageColumns, 
       null, null, imageOrderBy); 
     if (imageCursor.moveToFirst()) { 
      int id = imageCursor.getInt(imageCursor 
        .getColumnIndex(MediaStore.Images.Media._ID)); 
      String fullPath = imageCursor.getString(imageCursor 
        .getColumnIndex(MediaStore.Images.Media.DATA)); 
      return fullPath; 
     } else { 
      return ""; 
     } 
    } 

Эта функция вернет вам последний пройденный путь изображения.

+0

Как я узнаю, что такое путь? Существует ли стандартный универсальный путь, в котором камера автоматически сохраняет фотографии? – Cole

+0

Кроме того, в нем говорится: «Утилиты не могут быть разрешены» .... – Cole

+0

Удалите эту строку, ее внутренний класс для записи журнала в logcat. – Samdrain