[RK3288] 相机照片进行翻转

系统:android6.0

客户需求:将相机拍出来的照片旋转至某个角度显示

刚开始得到需求后自然而然地在gallery2里寻找问题点,后经点拨知道图库的功能只是为了显示图片,不做存储功能。(废了不少周折)。然后开始查看camera2里的内容,未果。也希望与大神看到此篇文章并且知道在camera2里修改位置的希望能与我分享,在此谢过。

废话少说,在hardware/rockchip/camera/CameraHal/AppMsgNotifier.cpp里面:

//3. src data will be changed by mirror and flip algorithm
    //use jpeg buffer as line buffer
    rotation = 90;
    if(rotation == 0)
    {
        JpegInInfo.rotateDegree = DEGREE_0; 
    }
    else if(rotation == 180)
    {
        YuvData_Mirror_Flip(V4L2_PIX_FMT_NV12, (char*)input_vir_addr,
        (char*) jpegbuf_vir, jpeg_w, jpeg_h);
        mRawBufferProvider->flushBuffer(0);
        JpegInInfo.rotateDegree = DEGREE_0; 
    }
    else if(rotation == 90)
    {
        YuvData_Mirror_Flip(V4L2_PIX_FMT_NV12, (char*)input_vir_addr,
        (char*) jpegbuf_vir, jpeg_w, jpeg_h);
        mRawBufferProvider->flushBuffer(0);    
        JpegInInfo.rotateDegree = DEGREE_270;
    }
    else if(rotation == 270)
    {
        JpegInInfo.rotateDegree = DEGREE_270;         
    }

 

接下来说一下录像旋转问题,这个最初以为也是在Hardware里面改,但是找了一会未果,因为比较急,所以换了个方向,在Camera2里面将他旋转,后经过查找发现如下位置修改:

packages/apps/Camera2/src/com/android/camera/VideoModule.java

initializeRecorder()--->

 mMediaRecorder.setOrientationHint(0); //旋转的角度

你可能感兴趣的:([RK3288] 相机照片进行翻转)