该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
jpg存储实现如下:
//jpg照片存储
private PictureCallback fjpgCallback = new PictureCallback()
{
@SuppressLint("SimpleDateFormat")
public void onPictureTaken( byte[] data , Camera camera )
{
String sdCard = Environment.getExternalStorageDirectory().getPath();
String dirFilePath = sdCard + File.separator + "DCIM" + File.separator + "Camera" + File.separator;
Bitmap bitmap = BitmapFactory.decodeByteArray( data , 0 , data.length );
try
{
//创建存放照片的文件夹
File dirFile = new File( dirFilePath );
if( !dirFile.exists() )
{
dirFile.mkdir();
Log.v( TAG , "创建文件完成" );
}
else
{
Log.v( TAG , "文件存在,无需创建" );
}
Date date = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat( "yyyy.MM.dd_HH:mm:ss" );//可以方便地修改日期格式
String time_stringFormat = dateFormat.format( date );
File file = File.createTempFile( "IMG_" + time_stringFormat , ".jpg" , dirFile );
BufferedOutputStream bos = new BufferedOutputStream( new FileOutputStream( file ) );
bitmap.compress( Bitmap.CompressFormat.JPEG , 100 , bos );
bos.flush();
bos.close();
camera.stopPreview();
camera.startPreview();
}
catch ( Exception e )
{
e.printStackTrace();
Log.v( TAG , "存储出错" );
}
finally
{
//非常重要:存储完照片后重新开启preview
mCamera.startPreview();
imgbTakePicture.setClickable( true );
}
}
};