android 摄像头图像数据YUV转Bitmap, 再转Base64
16lz
2021-12-04
废话不说直接上代码,亲测可用
1.YUV数组转Bitmap
import java.io.ByteArrayOutputStream;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.ImageFormat;import android.graphics.Rect;import android.graphics.YuvImage;/***http://tech.srij.it/2013/02/get-bitmap-image-from-yuv-in-android.html*/public class Utils { public static Bitmap getBitmapImageFromYUV(byte[] data, int width, int height) { YuvImage yuvimage = new YuvImage(data, ImageFormat.NV21, width, height, null); ByteArrayOutputStream baos = new ByteArrayOutputStream(); yuvimage.compressToJpeg(new Rect(0, 0, width, height), 80, baos); byte[] jdata = baos.toByteArray(); BitmapFactory.Options bitmapFatoryOptions = new BitmapFactory.Options(); bitmapFatoryOptions.inPreferredConfig = Bitmap.Config.RGB_565; Bitmap bmp = BitmapFactory.decodeByteArray(jdata, 0, jdata.length, bitmapFatoryOptions); return bmp; }}
2.Bitmap转Base64
private String bitmap2base64(Bitmap bitmap){ ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.PNG, 100, outputStream); return Base64.encodeToString(outputStream.toByteArray(), Base64.DEFAULT).trim().replaceAll("\n", "").replaceAll("\r", ""); }
另外补充一下, 转换玩的Base64字符串直接在控制台打印的话可能打印不全,控制台一次性貌似只能输出4k多个字符, 如果想拿字符串转回图片看效果的话,可以输出成txt文件。
更多相关文章
- Android(安卓)Binder的使用和设计[android native serivce]
- Android发送短信功能代码
- Android(安卓)Base64字符串转换成图片
- Android(安卓)Studio计算器 app
- Android(安卓)TextView 一些字体颜色、大小设置属性
- android,service实例,播放音乐
- Android(安卓): upload Image using MultiPartEntityBuilder
- Android如何防止异常奔溃以及拿到crash日志,处理线上问题定位
- android content命令