2013-12-10 2 views
1
public void onPictureTaken(byte[] data, Camera camera) 
     { 

      Intent imageIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
      File imagesFolder = new File(Environment.getExternalStorageDirectory(), "Folder/Raw Image"); 
      imagesFolder.mkdirs(); 
      Date d = new Date(); 
      CharSequence s = DateFormat.format("MM-dd-yy hh-mm-ss", d.getTime()); 
      File output = new File(imagesFolder, s.toString() + ".jpg"); 

      Uri uriSavedImage = Uri.fromFile(output); 
      imageIntent.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage); 
      OutputStream imageFileOS; 

      try { 
       imageFileOS = getContentResolver().openOutputStream(uriSavedImage); 
       imageFileOS.write(data); 
       imageFileOS.flush(); 
       imageFileOS.close(); 

       Toast.makeText(AndroidCamera.this, 
         "Image saved: ", 
         Toast.LENGTH_LONG).show(); 

       } 
      catch (FileNotFoundException e) 
       { 
       e.printStackTrace(); 
       } 
      catch (IOException e) 
      { 
       e.printStackTrace(); 
      } 
      finally 
      {} 
      Log.d("Log", "onPictureTaken - jpeg"); 
File filenew = new File(android.os.Environment.getExternalStorageDirectory(),"Folder/Raw Image"); 

      bitmap=BitmapFactory.decodeFile(filenew.getAbsolutePath()); 

Каждый раз, когда я снимаю изображение, изображение сохраняется в подпапке «Исходное изображение», которая находится в папке «Папка». Мне нужно получить это изображение для дальнейшей обработки. поэтому я использовал Bitmapfactory.options. Все это нужно сделать одним нажатием кнопки. все изображения, которые были сохранены, должны быть обработаны. Как я могу получить таким образом.Извлечение изображения из папки: Android

ответ

0

Если вы делаете фотографии, то вы можете сделать это startActivityForResult, во время этого процесса вам необходимо работать с URI. URI - это путь, который вы указали для своего изображения.

И теперь во время onActivityResult(..) разговора вы можете сделать следующее:

try { 
    Bitmap thumb = MediaStore.Images.Media.getBitmap(
      activity.getContentResolver(), fileUri); 
    photo.setImageBitmap(thumb); 
} catch (FileNotFoundException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} catch (IOException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 

Где fileUri является URI образом я говорил. Здесь photo является ImageView. Также при работе с различными устройствами существует вероятность, что вы можете получить сообщение об ошибке, поэтому я рекомендую вам сохранить путь URI в SharedPreference.

0

Вы указывая на неправильный путь:

Environment.getExternalStorageDirectory().toString() + "/"+ Folder + "Raw Image"+ ".jpg"; 

Но вы создали папку, как это,

Попробуйте этот путь, он может помочь вам.

File imagesFolder = new File(Environment.getExternalStorageDirectory(), "Folder/RawImage"); 
     imagesFolder.mkdirs(); 

     File output = new File(imagesFolder,"temp" + ".jpg"); 

Выше мы объявили статическое имя файла. Файл будет заменен для каждого захвата изображения. Теперь вы знаете FilePath,

String mFilePath = Environment.getExternalStorageDirectory() + "Folder/RawImage/temp.jpg"; 

Вы можете использовать этот FilePath следующим образом, чтобы показать растровые.

myImage.setImageUri(Uri.fromFile(new File("Your file path"))); 
Or with: 
myImage.setImageUri(Uri.parse(new File("Your file path").toString())); 

Вы можете получить растровое изображение:

Bitmap bmp=BitmapFactory.decodeStream(getContentResolver().openInputStream(Your image URI)); 
+0

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

+0

, Вы должны указать правильный путь. В этом коде не будет исключение такого файла. Проверьте, существует ли файл перед использованием этого файла. myFile.isExist(); Если вы используете дату, трудно найти имя файла. Если вы укажете имя файла, которое вы можете использовать соответствующим образом. и вы также сохраните изображение в новой папке. –

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