日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android nv21图片格式,Android -- 将NV21图像保存成JPEG

發布時間:2025/3/15 Android 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android nv21图片格式,Android -- 将NV21图像保存成JPEG 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

//保存一張照片

String fileName = "IMG_" + String.valueOf(index) + ".jpg"; //jpeg文件名定義

File sdRoot = Environment.getExternalStorageDirectory(); //系統路徑

String dir = "/jpeg/"; //文件夾名

File mkDir = new File(sdRoot, dir);

if (!mkDir.exists())

{

mkDir.mkdirs(); //目錄不存在,則創建

}

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

if (!pictureFile.exists()) {

try {

pictureFile.createNewFile();

FileOutputStream filecon = new FileOutputStream(pictureFile);

YuvImage image = new YuvImage(data, ImageFormat.NV21, width, height, null); //將NV21 data保存成YuvImage

//圖像壓縮

image.compressToJpeg(

new Rect(0, 0, image.getWidth(), image.getHeight()),

70, filecon); // 將NV21格式圖片,以質量70壓縮成Jpeg,并得到JPEG數據流

}catch (IOException e)

{

e.printStackTrace();

}

}

該方法,常常在

Camera.PreviewCallback中采用:

@Override

public void onPreviewFrame(byte[] data, Camera camera) {

}

將NV21數據壓縮成JPEG,并得到JPEG byte數據,解壓JPEG byte數據成一張Bitmap

@Override

public void onPreviewFrame(byte[] bytes, Camera camera) {

YuvImage image = new YuvImage(bytes, ImageFormat.NV21, width, height, null); //ImageFormat.NV21 640 480

ByteArrayOutputStream outputSteam = new ByteArrayOutputStream();

image.compressToJpeg(new Rect(0, 0, image.getWidth(), image.getHeight()), 70, outputSteam); // 將NV21格式圖片,以質量70壓縮成Jpeg,并得到JPEG數據流

byte[] jpegData = outputSteam.toByteArray(); //從outputSteam得到byte數據

Options options = new BitmapFactory.Options();

options.inSampleSize = 1;

Bitmap bmp = BitmapFactory.decodeStream(jpegData, null, options);

}

總結

以上是生活随笔為你收集整理的android nv21图片格式,Android -- 将NV21图像保存成JPEG的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。