save Image byte array - Android android.graphics

Android examples for android.graphics:Image Load Save

Description

save Image byte array

Demo Code

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

import android.os.Environment;
import android.util.Log;

public class Main {

  public static final int MEDIA_TYPE_VIDEO = 2;
  public static final String TAG = "CameraUtil";
  public static final int MEDIA_TYPE_IMAGE = 1;

  /**//w ww . jav  a 2s.c om
   * @param data
   *          Image data
   * @return true if the data can be saved to image, or return false.
   */
  public static boolean saveImage(byte[] data) {
    File pictureFile = getOutputMediaFile(MEDIA_TYPE_IMAGE);
    if (pictureFile == null) {
      Log.d(TAG, "Error creating media file, check storage permissions:");
      return false;
    }

    try {
      FileOutputStream fos = new FileOutputStream(pictureFile);
      fos.write(data);
      fos.close();
      return true;
    } catch (FileNotFoundException e) {
      Log.d(TAG, "File not found: " + e.getMessage());
    } catch (IOException e) {
      Log.d(TAG, "Error accessing file: " + e.getMessage());
    }
    return false;
  }

  /**
   * Create a File for saving an image or video
   *
   * @param type
   *          MEDIA_TYPE_IMAGE or MEDIA_TYPE_VIDEO
   * @return a file
   */
  public static File getOutputMediaFile(int type) {
    File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),
        "MyCameraApp");
    if (!mediaStorageDir.exists()) {
      if (!mediaStorageDir.mkdirs()) {
        return null;
      }
    }

    // Create a media file name
    String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
    File mediaFile;
    if (type == MEDIA_TYPE_IMAGE) {
      mediaFile = new File(mediaStorageDir.getPath() + File.separator + "IMG_" + timeStamp + ".jpg");
    } else if (type == MEDIA_TYPE_VIDEO) {
      mediaFile = new File(mediaStorageDir.getPath() + File.separator + "VID_" + timeStamp + ".mp4");
    } else {
      return null;
    }

    return mediaFile;
  }

}

Related Tutorials