2015-09-11 2 views
-1

Мне очень нужна помощь в этом, я застрял. мне нужно сделать снимок и использовать его растровое изображение в программе, но я имею вопросы, я попробовал этот код я нашел, но результат намного намного меньше, картинка по какой-то причинеandroid camera extract bitmap

Bitmap resultpic=null; 

     Intent cameraIntent = new Intent(
       android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
     cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, 
       MediaStore.Images.Media.EXTERNAL_CONTENT_URI.getPath()); 
     cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, "new-photo-name.jpg"); 
     startActivityForResult(cameraIntent, 1888); 

    protected void onActivityResult(int requestCode, int resultCode, Intent data) 
    { 
     int CAMERA_REQUEST = 1888; 
     if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK) 
     { 
      photo = (Bitmap) data.getExtras().get("data"); 

      Log.i("phototookwidth",Integer.toString(photo.getWidth())); 
      Log.i("phototookheight",Integer.toString(photo.getHeight())); 
      File outFile = new File(Environment.getExternalStorageDirectory(), "myname.jpeg"); 
      FileOutputStream fos = null; 
      try { 
       fos = new FileOutputStream(outFile); 
      } catch (FileNotFoundException e) { 
       e.printStackTrace(); 
      } 
      photo.compress(Bitmap.CompressFormat.JPEG, 100, fos); 
      try { 
       fos.flush(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      try { 
       fos.close(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      resultpic=photo; 
     } 
    } 

У меня есть код, который отображает то же самое растровый, но по какой-то причине размер как 10 раз меньше, чем фотографии, сделанной на одном телефоне в тот же момент, который запутать меня, пожалуйста, помогите

ответ

0
@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    byte[] image_byte_array; 
     if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) { 
      Bundle extras = data.getExtras(); 
      image = (Bitmap) extras.get("data"); 
      ByteArrayOutputStream stream = new ByteArrayOutputStream(); 
      image.compress(Bitmap.CompressFormat.PNG, 100, stream); 
      image_byte_array = stream.toByteArray(); 
      FileOutputStream fos = new FileOutputStream("pathname"); 
      fos.write(image_byte_array); 
      fos.close(); 
}} 

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

+0

я получите ошибку при записи с использованием попытки catch. и, если возможно, мне действительно не нужен файл. Мне просто нужно растровое изображение фотографии размером с картиной, касающейся изменения размера. Я могу работать в одиночку, а также пытаться запустить его с учетом записи и растрового изображения нулевым образом – user3768470