调用Android相机拍照,解决了拍照时候内存溢出溢出的问题
2014-02-15 15:10
459 查看
在别处上看到的文章,解决了我在开发中的拍照后内存溢出的问题,下面就是代码
private static int CARMER_REQUEST_CODE = 1; private String filedirName = "sencondIDCard"; private String picFileName = ""; private File picFile = null; Uri imgUri = null; OcrEngine oe; IDCard ic; private void startCarmer() { File dir = new File(Environment.getExternalStorageDirectory().getAbsolutePath(), "sencondIDCard"); if(!dir.exists()){ dir.mkdirs(); } Date date = null; SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");// 获取当前时间,进一步转化为字符串 date = new Date(); picFileName = format.format(date) + ".jpg"; picFile = new File(dir,picFileName); Uri u=Uri.fromFile(picFile); Intent camera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); camera.putExtra(MediaStore.Images.Media.ORIENTATION, 0); camera.putExtra(MediaStore.EXTRA_OUTPUT, u); startActivityForResult(camera, CARMER_REQUEST_CODE); } /** * @param 将图片内容解析成字节数组 * @param inStream * @return byte[] * @throws Exception */ public byte[] readStream(InputStream inStream) throws Exception { byte[] buffer = new byte[1024]; int len = -1; ByteArrayOutputStream outStream = new ByteArrayOutputStream(); while ((len = inStream.read(buffer)) != -1) { outStream.write(buffer, 0, len); } byte[] data = outStream.toByteArray(); outStream.close(); inStream.close(); return data; } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == CARMER_REQUEST_CODE ) { try { imgUri = Uri.parse(android.provider.MediaStore.Images.Media.insertImage(getContentResolver(), picFile.getAbsolutePath(), null, null)); //u就是拍摄获得的原始图片的uri,剩下的你想干神马坏事请便…… ContentResolver cr = getContentResolver(); InputStream imgIS = imgIS = cr.openInputStream(imgUri); // ic = oe.recognize(MainActivity.this, picFile.getAbsolutePath()); ic = oe.recognize(MainActivity.this, readStream(imgIS)); String cn = ic.getCardNo(); String bt = ic.getBirth(); if(cn != null){ System.out.println("cn--->" + cn); }else{ System.out.println("cn---> cn is null" ); } System.out.println("--->" ); } catch ( Exception e) { e.printStackTrace(); } } }
相关文章推荐
- 解决Android 调用相机拍照后得到的照片不清晰问题
- Android开发 调用系统相机相册图片功能,解决小米手机拍照或者图片横竖相反问题,及小米手机相册图片路径问题
- 解决Android调用系统相机拍照后相片无法在相册中显示问题
- Android调用系统相机拍照像素太低以及内存溢出问题
- Android 调用系统相机拍照并且显示在相册中,以及中间可能会遇到的一些问题的解决
- Android多层嵌套Fragment中调用系统相机拍照以及裁剪的相关问题解决
- 解决android调用系统相机拍照保存时onActivityResult中data为null的问题
- android调用系统相机和相册进行拍照裁剪处理,解决不同安卓版本存在无法加载相册的问题,处理了是否有sd卡的存在的情况
- android系统相机的使用、及解决拍照闪退的问题
- Android开发——相册拍照_03.解决相机拍照之后部分手机无法将图片保存到路径或部分手机点击相机确定无法返回问题
- 解决三星调用系统相机拍照显示图片旋转90度横着的问题
- android系统相机的使用、及解决拍照闪退的问题
- 彻底解决Android 拍照 内存溢出 Out of Memory的问题
- android调用系统相机的方法,并且解决三星手机遇到的问题,图片旋转、压缩
- 深坑之Webview,解决H5调用android相机拍照和录像
- 解决通过Intent调用系统拍照程序,返回图片太小的问题[android]
- Android解决三星手机拍照图片调用时逆时针旋转90度问题
- Android 调用系统相机,拍照,并上传图片所注意的一些问题
- 解决Android7.0系统 调用系统相机、系统播放器播放视频、切图兼容问题,报异常android.os.FileUriExposedException
- android 调用系统相机,预置路径,解决小米等机型uri返回为null的问题