-4

i want to capture an image and save it into specific folder rather than in DCIM/Camera or Gallery...

want to save like: storage/sdcard0/DCIM/MyFolder.

Muhammad Fahad
  • 101
  • 2
  • 10

3 Answers3

1

Try this one it may be help you

public void takePicture(){
        Intent imgIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
        File imagesFolder = new File(Environment.getExternalStorageDirectory(), "ImagesApp");
        imagesFolder.mkdirs(); // <----
        File image = new File(imagesFolder, "temp.jpg");
        Uri uriSavedImage = Uri.fromFile(image);
        imgIntent.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage);
        startActivityForResult(imgIntent,IMAGE_CAPTURE_REQUEST_CODE);
    }
Dhaval Solanki
  • 4,589
  • 1
  • 23
  • 39
1

You can use the following code

private String save(Bitmap bitmap)
{
        File save_path = null;
        if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED))
        {
            try
            {
                File sdCard = Environment.getExternalStorageDirectory();
                File dir = new File(sdCard.getAbsolutePath() + "/DirName");
                dir.mkdirs();
                File file = new File(dir, "DirName_"+new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime())+ ".png");
                save_path =   file;
                ByteArrayOutputStream baos = new ByteArrayOutputStream();
                bitmap.compress(Bitmap.CompressFormat.PNG, 100,baos);
                FileOutputStream f = null;
                f = new FileOutputStream(file);
                MediaScannerConnection.scanFile(this, new String[]{file.getAbsolutePath()}, null, null);
                if (f != null)
                {
                    f.write(baos.toByteArray());
                    f.flush();
                    f.close();
                }
            }
            catch (Exception e)
            {
                // TODO: handle exception
            }
        }
        return String.valueOf(save_path);
    }

Hope this will help you out...

Kushal
  • 795
  • 1
  • 5
  • 23
0

Try following code

private void createDirectoryAndSaveFile(Bitmap imageToSave, String fileName) {

File direct = new File(Environment.getExternalStorageDirectory() + "/DirName");

if (!direct.exists()) {
    File wallpaperDirectory = new File("/sdcard/DirName/");
    wallpaperDirectory.mkdirs();
}

File file = new File(new File("/sdcard/DirName/"), fileName);
if (file.exists()) {
    file.delete();
}
try {
    FileOutputStream out = new FileOutputStream(file);
    imageToSave.compress(Bitmap.CompressFormat.JPEG, 100, out);
    out.flush();
    out.close();
} catch (Exception e) {
    e.printStackTrace();
}
}
mdDroid
  • 3,135
  • 2
  • 22
  • 34