Camera byte[] - > jpeg android

49 篇文章 0 订阅
   private Bitmap byte2bitmap(byte[] bytes, Camera camera) {

        Camera.Size size = camera.getParameters().getPreviewSize(); // 获取预览大小
        final int w = size.width; // 宽度
        final int h = size.height;
        final YuvImage image = new YuvImage(bytes, ImageFormat.NV21, w, h,
                null);
        ByteArrayOutputStream os = new ByteArrayOutputStream(bytes.length);

        if (!image.compressToJpeg(new Rect(0, 0, w, h), 100, os)) {
            return null;
        }
        byte[] tmp = os.toByteArray();

       // CameraRelease();
        BitmapFactory.Options localOptions = new BitmapFactory.Options();
        Bitmap bitmap = BitmapFactory.decodeByteArray(tmp, 0, tmp.length,localOptions);

        //

        return  bitmap;



    }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
相机是手机中最常用的硬件之一,因此在Android开发中学习如何使用相机是非常重要的。在Android中,相机服务以及相机驱动程序都已经内置在系统中,我们只需要使用它们提供的API就可以轻松地在应用中实现相机功能。 在使用相机之前,需要先检查设备是否具备相机硬件,可以通过检查系统是否具有相机设备来判断: ```java private boolean checkCameraHardware(Context context) { if (context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA)) { // 设备具有相机设备 return true; } else { // 设备没有相机设备 return false; } } ``` 如果设备有相机硬件,那么我们就可以开始使用相机了。首先,我们需要获取相机实例: ```java private Camera getCameraInstance() { Camera camera = null; try { camera = Camera.open(); } catch (Exception e) { // 相机不可用(被占用或者不存在) } return camera; } ``` 获取相机实例之后,我们需要对相机进行一些设置,例如设置预览界面、设置拍照参数等。这些设置都可以通过Camera类提供的API来实现。 设置预览界面: ```java // 设置预览界面 private void setPreviewDisplay(SurfaceHolder holder) { try { mCamera.setPreviewDisplay(holder); mCamera.startPreview(); } catch (IOException e) { e.printStackTrace(); } } ``` 设置拍照参数: ```java // 设置拍照参数 private void setCameraParameters() { Camera.Parameters parameters = mCamera.getParameters(); // 设置拍照格式 parameters.setPictureFormat(PixelFormat.JPEG); // 设置拍照质量 parameters.setJpegQuality(100); // 设置相机参数 mCamera.setParameters(parameters); } ``` 拍照: ```java // 拍照 private void takePicture() { mCamera.takePicture(null, null, mPictureCallback); } // 拍照回调 private Camera.PictureCallback mPictureCallback = new Camera.PictureCallback() { @Override public void onPictureTaken(byte[] data, Camera camera) { // 处理拍照结果 } }; ``` 以上就是相机的基本使用方法,在实际开发中,还需要注意相机资源的释放、相机的方向调整等问题。因为相机在不同的设备上可能会有不同的表现,所以在使用相机时一定要充分测试。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值