Android -- 几种保存成jpeg文件的形式

2016-12-19  本文已影响174人  60916fc63567

//1.采用NV21格式 YuvImage类进行保存  效率很高

String fileName ="IMG_"

+ String.valueOf(index) +".jpg";

File sdRoot = Environment.getExternalStorageDirectory();

String dir ="/picture/";

File mkDir =newFile(sdRoot, dir);

if(!mkDir.exists())

{

mkDir.mkdirs();

}

File pictureFile =newFile(sdRoot, dir + fileName);

if(!pictureFile.exists()) {

try{

pictureFile.createNewFile();

FileOutputStream filecon =newFileOutputStream(pictureFile);

YuvImage image =newYuvImage(data,

ImageFormat.NV21, size.width, size.height,

null);

image.compressToJpeg(

newRect(0,0, image.getWidth(), image.getHeight()),

70, filecon);// 将NV21格式图片,以质量70压缩成Jpeg,并得到JPEG数据流

}catch(IOException e)

{

e.printStackTrace();

}

}

//2.采用Bitmap类

Bitmap bmp = BitmapFactory.decodeFile(pictureFile.getPath());

FileOutputStream fileOutStream =null;

fileOutStream =newFileOutputStream(file);

bmp.compress(Bitmap.CompressFormat.JPEG,100, fileOutStream);//把位图输出到指定的文件中

fileOutStream.flush();

fileOutStream.close();

//3.直接采用保存byte[]数据

FileOutputStream fos =newFileOutputStream(pictureFile.getPath());// Get file output stream

fos.write(bytes);// Written to the file

fos.close();

原地址:http://www.2cto.com/kf/201412/360088.html

上一篇下一篇

猜你喜欢

热点阅读