Save bitmap to location Save bitmap to location android android

Save bitmap to location


try (FileOutputStream out = new FileOutputStream(filename)) {    bmp.compress(Bitmap.CompressFormat.PNG, 100, out); // bmp is your Bitmap instance    // PNG is a lossless format, the compression factor (100) is ignored} catch (IOException e) {    e.printStackTrace();}


You should use the Bitmap.compress() method to save a Bitmap as a file. It will compress (if the format used allows it) your picture and push it into an OutputStream.

Here is an example of a Bitmap instance obtained through getImageBitmap(myurl) that can be compressed as a JPEG with a compression rate of 85% :

// Assume block needs to be inside a Try/Catch block.String path = Environment.getExternalStorageDirectory().toString();OutputStream fOut = null;Integer counter = 0;File file = new File(path, "FitnessGirl"+counter+".jpg"); // the File to save , append increasing numeric counter to prevent files from getting overwritten.fOut = new FileOutputStream(file);Bitmap pictureBitmap = getImageBitmap(myurl); // obtaining the BitmappictureBitmap.compress(Bitmap.CompressFormat.JPEG, 85, fOut); // saving the Bitmap to a file compressed as a JPEG with 85% compression ratefOut.flush(); // Not really requiredfOut.close(); // do not forget to close the streamMediaStore.Images.Media.insertImage(getContentResolver(),file.getAbsolutePath(),file.getName(),file.getName());


outStream = new FileOutputStream(file);

will throw exception without permission in AndroidManifest.xml (at least in os2.2):

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>