public class takepic implements Camera.PictureCallback{
@Override
public void onPictureTaken(byte[] data, Camera camera) {
//方法一
/* File jpg = new File("/sdcard/test/"+System.currentTimeMillis()+".jpg");
try {
FileOutputStream outputStream = new FileOutputStream(jpg);
outputStream.write(data);
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
mCamera.startPreview();
uri = Uri.fromFile(jpg);
iv.setImageURI(uri);*/
//方法二
if (data !=null){
Bitmap bmp = BitmapFactory.decodeByteArray(data, 0, data.length);
FileOutputStream out = null;
try {
out = new FileOutputStream("/sdcard/test/"+System.currentTimeMillis()+"_A.jpg");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
//旋转90
Matrix matrix = new Matrix();
matrix.setRotate(90);
bmp = Bitmap.createBitmap(bmp, 0, 0, bmp.getWidth(), bmp.getHeight(), matrix, true);
bmp.compress(Bitmap.CompressFormat.JPEG,80,out);
iv.setImageBitmap(bmp);
mCamera.startPreview();
}
}
}
@Override
public void onPictureTaken(byte[] data, Camera camera) {
//方法一
/* File jpg = new File("/sdcard/test/"+System.currentTimeMillis()+".jpg");
try {
FileOutputStream outputStream = new FileOutputStream(jpg);
outputStream.write(data);
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
mCamera.startPreview();
uri = Uri.fromFile(jpg);
iv.setImageURI(uri);*/
//方法二
if (data !=null){
Bitmap bmp = BitmapFactory.decodeByteArray(data, 0, data.length);
FileOutputStream out = null;
try {
out = new FileOutputStream("/sdcard/test/"+System.currentTimeMillis()+"_A.jpg");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
//旋转90
Matrix matrix = new Matrix();
matrix.setRotate(90);
bmp = Bitmap.createBitmap(bmp, 0, 0, bmp.getWidth(), bmp.getHeight(), matrix, true);
bmp.compress(Bitmap.CompressFormat.JPEG,80,out);
iv.setImageBitmap(bmp);
mCamera.startPreview();
}
}
}