安卓摄像头 data 转bitmap
2017-12-23 21:01
225 查看
public static Bitmap getBitMap(byte[] data, Camera camera, boolean mIsFrontalCamera) { int width = camera.getParameters().getPreviewSize().width; int height = camera.getParameters().getPreviewSize().height; YuvImage yuvImage = new YuvImage(data, camera.getParameters() .getPreviewFormat(), width, height, null); ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); yuvImage.compressToJpeg(new Rect(0, 0, width, height), 80, byteArrayOutputStream); byte[] jpegData = byteArrayOutputStream.toByteArray(); // 获取照相后的bitmap Bitmap tmpBitmap = BitmapFactory.decodeByteArray(jpegData, 0, jpegData.length); Matrix matrix = new Matrix(); matrix.reset(); if (mIsFrontalCamera) { matrix.setRotate(-90); } else { matrix.setRotate(90); } tmpBitmap = Bitmap.createBitmap(tmpBitmap, 0, 0, tmpBitmap.getWidth(), tmpBitmap.getHeight(), matrix, true); tmpBitmap = tmpBitmap.copy(Bitmap.Config.ARGB_8888, true); int hight = tmpBitmap.getHeight() > tmpBitmap.getWidth() ? tmpBitmap .getHeight() : tmpBitmap.getWidth(); float scale = hight / 800.0f; if (scale > 1) { tmpBitmap = Bitmap.createScaledBitmap(tmpBitmap, (int) (tmpBitmap.getWidth() / scale), (int) (tmpBitmap.getHeight() / scale), false); } return tmpBitmap; }
相关文章推荐
- 安卓图片Bitmap一些旋转处理
- 从public void onPreviewFrame(byte[] data, Camera arg1)拿到Bitmap(收集)
- 基于位图(Bitmap、BitmapData)的图片处理方法(C#)
- Flex用BitmapData实现文本旋转
- 安卓 保存Bitmap图片至本地并获得本地路径
- 使用C#的BitmapData
- Cumulus RTMFP实现P2P视频流如何调用BitMapData.draw()进行截图?
- flex image组件 得到 BitmapData …
- Context3D类中的drawToBitmapData方法(将GPU缓冲区数据写到位图中)
- BitmapData转化为ByteArray之后的像素级处理
- 安卓开发应该知道的Drawable、Bitmap、Canvas和Paint的关系
- 第60篇 释放摄像头研究及安卓和IOS共用一套代码(二)
- 安卓开发基础知识1(双摄像头安卓手机)
- bitmap的缩放scale不会改变里面的bitmapData宽高
- Flex中如何利用Bitmap和BitmapData类复制图片到一个TileList控件的例子
- unity InputField导致安卓摄像头卡顿问题
- 使用C#的BitmapData
- SecurityError: Error #2123: 安全沙箱冲突,对NetStream使用BitmapData.draw()时出现的
- 安卓从imageview中获得bitmap的方法
- BitmapFactory.decodeFile 加载失败 在部分安卓机器的BUG