andreluizreis
7/12/2017 - 5:45 PM

Convert Bitmap to File

Convert Bitmap to File

/**
 * Convert Bitmap to File (PNG image). Save the image.
 *
 * @param context context
 * @param bitmap bitmap
 * @return File file
 */
public static File convertBitmapToFile(Context context, Bitmap bitmap) {
    FileOutputStream fOut = null;
    File file = null;
    //String fileName = Long.toString(System.currentTimeMillis());

    try {
        file = new File(context.getFilesDir(), generateFileName());
        Date date = new Date();
        file.setLastModified(date.getTime());
        fOut = new FileOutputStream(file);
        bitmap.compress(Bitmap.CompressFormat.PNG, 100, fOut); // bmp is your Bitmap instance
        // PNG is a lossless format, the compression factor (100) is ignored
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        try {
            if (fOut != null) {
                fOut.close();
                MediaStore.Images.Media.insertImage(
                    context.getContentResolver(),
                    file.getAbsolutePath(),
                    file.getName(),
                    file.getName());
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    return file;
}

/**
 * Generate file name
 * @return String file name
 */
private static String generateFileName() {
    String timeStamp = new SimpleDateFormat("yyyy-MM-dd-HHmmss").format(new Date());
    return "MyApp_" + timeStamp;
}