保存imagename捕获surfaceview相机android

时间:2014-04-08 02:13:51

标签: android

  PictureCallback myPictureCallback_JPG = new PictureCallback(){
    @Override
    public void onPictureTaken(byte[] arg0, Camera arg1) {
        // TODO Auto-generated method stub
        /*Bitmap bitmapPicture 
            = BitmapFactory.decodeByteArray(arg0, 0, arg0.length);  */

        Uri uriTarget = getContentResolver().insert(Media.EXTERNAL_CONTENT_URI, new ContentValues());

        OutputStream imageFileOS;
        try {
            imageFileOS = getContentResolver().openOutputStream(uriTarget);
            imageFileOS.write(arg0);
            imageFileOS.flush();
            imageFileOS.close();

            Toast.makeText(MainActivity.this,"Photo disimpan",Toast.LENGTH_SHORT).show();
            //Toast.makeText(MainActivity.this,"Photo disimpan: " + uriTarget.toString(),Toast.LENGTH_LONG).show();

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        camera.startPreview();
    }};

如何以“2014-04-07-04.jpg”格式将图像保存到SD卡?

2 个答案:

答案 0 :(得分:0)

试试以下代码。

    private File createImageFile() throws IOException{

    String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
    String imageFileName = JPEG_FILE_PREFIX + timeStamp + "_";
    File storageDir = getAlbumDir();
    File image = File.createTempFile(imageFileName, JPEG_FILE_SUFFIX, storageDir);

    return image;
}

答案 1 :(得分:0)

我发现solution是这样的:

@Override
public void onPictureTaken(byte[] data, Camera camera) {

  File pictureFileDir = getDir();

  if (!pictureFileDir.exists() && !pictureFileDir.mkdirs()) {

  Log.d(MakePhotoActivity.DEBUG_TAG, "Can't create directory to save image.");
  Toast.makeText(context, "Can't create directory to save image.",
      Toast.LENGTH_LONG).show();
  return;

}

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyymmddhhmmss");
String date = dateFormat.format(new Date());
String photoFile = "Picture_" + date + ".jpg";

String filename = pictureFileDir.getPath() + File.separator + photoFile;

File pictureFile = new File(filename);

try {
  FileOutputStream fos = new FileOutputStream(pictureFile);
  fos.write(data);
  fos.close();
  Toast.makeText(context, "New Image saved:" + photoFile,
      Toast.LENGTH_LONG).show();
} catch (Exception error) {
  Log.d(MakePhotoActivity.DEBUG_TAG, "File" + filename + "not saved: "
      + error.getMessage());
  Toast.makeText(context, "Image could not be saved.",
      Toast.LENGTH_LONG).show();
}
}

private File getDir() {
  File sdDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
  return new File(sdDir, "CameraAPIDemo");
}