展开

关键词

Android--Camera基本用法

在我们处理canvas平移,缩放等矩阵matrix变换中,除了自己手动操作矩阵matrix外,安卓系统还提供了一个工具类--Camera,用于3D变换计算,生成一个Matrix矩阵实例用于画布上面绘制。 zuobiao.png 其中初始坐标和canvas相同,为左上角,但是y轴不再是向下为正,而是和我们平时数学中的坐标系相同,这点要注意 Camera内部实际上OpenGL。 很多时候我们用OpenGL做3D特效,其实Camera可以满足绝大部分的需要 下面是一张在app中没有做任何变换的图 ? 默认.jpg 接下来,我们使用camera来对该图进行矩阵变换 private Camera camera = new Camera(); private Matrix matrix = 图片中心旋转45度.jpg camera的基础使用就到此结束了

31220

AndroidCamera Framework层分析

Camera应用调用Framework Camera类API 在Android Kitkat原生Camera2应用(packages/apps/Camera2/)的PhotoModule, VideoModule 类(frameworks/base/core/java/android/hardware/Camera.java)的open()方 法。 public class Camera { public static Camera open(int cameraId) { return new Camera(cameraId) > camera = Camera::connect(cameraId, clientName, Camera::USE_CALLING_UID); ………… } CameraService Camera类继承模板类 CameraBase<Camera>和BnCameraClient。

11920
  • 广告
    关闭

    什么是世界上最好的编程语言?丨云托管征文活动

    代金券、腾讯视频VIP、QQ音乐VIP、QB、公仔等奖励等你来拿!

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android Camera SurfaceView 预览拍照

    本文已获得作者授权,本文作者:cain_huang 原文链接:https://www.jianshu.com/p/9e0f3fc5a3b4 Android使用 Camera API + SurfaceView 由于Camera在SurfaceView中是通过SurfaceHolder 使得Surfaceview能够预览Camera返回的数据,因此我们需要实现SurfaceHolder 的回调,实现代码如下: WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.activity_camera_surface); // Android > <FrameLayout xmlns:android="http://schemas.android.com/apk/res/<em>android</em>" xmlns:tools="http://schemas.android.com 备注 <em>Camera</em> API 在打开相机是在哪个线程,那么onPreviewFrame回调执行就在哪个线程。

    1.5K20

    Android Camera 模型及 API 接口演变

    Android Camera HAL 调用 应用进程通过 Binder 通信得到一个系统服务,这个系统服务就是用来访问硬件的。 正是由于 Android Camera 的硬件抽象层发生了变化,访问硬件的方式有所改变,才导致相机模型发生变化,上层 API 接口也就随之变化了。 Android Camera 1.0 的相机模型 Android 5.0 之前的 Camera 版本,功能比较单一,不像 5.0 之后那样支持很多特性,这也是由于它的 HAL 所决定的。 Android Camera 2.0 的相机模型 在 Android 5.0 之后,相机 API 就有了较大的变化,用的是 android.hardware.camera2 包下的内容了。 Android Camera 2.0 调用 Camera 2.0 的架构将多个运行模式整合为一个统一的视图,可以使用这种视图实现之前的任何模式以及一些其他模式,如连拍模式。

    83820

    android camera yuv帧水平翻转实例

    Camera预览时需要对yuv帧做水平翻转处理,直接在onPreviewFrame(byte[] data, Camera camera)里调用Mirror函数,处理完后的图片和预览效果成水平翻转关系。 YV12: YYYYYYYY VVUU = YUV420P NV12: YYYYYYYY UVUV = YUV420SP NV21: YYYYYYYY VUVU = YUV420SP 以上这篇android camera yuv帧水平翻转实例就是小编分享给大家的全部内容了,希望能给大家一个参考。

    24320

    Android Camera开发系列:调整Camera预览方向

    有时候我们想根据自己的需要调整下Camera的预览方向,那么是调用哪个API可以达到我们的目的呢? 我们看下下图拍的几张小可爱的照片,分别是正常方向、旋转180度、90度拍的照片。 ​ 一、Camera API Camera1上,我们可以通过**setDisplayOrientation(int degress);**来设置camera预览的方向。 before the rotation, that * is, the image is reflected along the central vertical axis of the camera matrix.postRotate(180, centerX, centerY); } mTextureView.setTransform(matrix); } 复制代码 ---- 本人从事Android Camera相关开发已有5年 目前在深圳上班 欢迎大家关注我的微信公众号“小驰笔记” 大家一起学习交流 微信公众号.png

    48520

    Android Camera开发系列:调整Camera预览方向

    有时候我们想根据自己的需要调整下Camera的预览方向,那么是调用哪个API可以达到我们的目的呢? 我们看下下图拍的几张小可爱的照片,分别是正常方向、旋转180度、90度拍的照片。 ? 一、Camera API Camera1上,我们可以通过setDisplayOrientation(int degress)来设置camera预览的方向。 before the rotation, that * is, the image is reflected along the central vertical axis of the camera * *

    If you want to make the camera image show in the same orientation as * the display setCameraDisplayOrientation(Activity activity, * int cameraId, android.hardware.Camera camera

    32620

    Android Camera开发系列:设置对焦模式模式

    你对android camera的对焦模式熟悉吗? 知道什么场景下该设置哪种对焦模式吗? 本文针对下面2点展开介绍,和大家一起学习~ 一、有哪几种对焦模式? 二、如何使用各种对焦模式? (贴的Android源码里面的介绍,写的够详细) /** * Auto-focus mode. The camera * continuously tries to focus. The camera * continuously tries to focus. / public static final String FOCUS_MODE_CONTINUOUS_PICTURE = "continuous-picture"; ---- 本人从事Android

    44830

    android】用camera实现vi

    使用Camera实现3D变换效果 最后来简单介绍下android提供的android.graphics.Camera类,通过该类可以在2D条件下实现3D动画效果,该类可以看做一个视图显示的3D空间,然后可以在里面做各种操作 把上面的ViewAnimation修改为如下实现可以具体看看Camera的功能: class ViewAnimation extends Animation {    int mCenterX;// 记录View的中间坐标  int mCenterY;           Camera camera = new Camera();    public ViewAnimation() {    然后逐步的往前移动到0,同时camera.rotateY(360 * interpolatedTime)函数又把ImageView沿Y轴翻转360度,最终效果如下: 下图是中移动的Ophone的截图,当然,同样兼容android

    20020

    Android Camera开发系列:预览镜头缩放(数码变焦)

    CameraCharacteristics.SCALER_AVAILABLE_MAX_DIGITAL_ZOOM); // converting 0.0f-1.0f zoom scale to the actual camera , cropH, activeRect.width() - cropW, activeRect.height() - cropH); } 复制代码 ---- 本人从事Android Camera相关开发已有5年 目前在深圳上班 欢迎大家关注我的微信公众号“小驰笔记” 大家一起学习交流 ---------- 2020.10.23

    51610

    Android Camera开发序列:Camera2 API 的简单描述和调用(预览、拍照、录像

    Android 5.1 以后,添加了Camera2 的API,能够满足更多操纵camera的场景。当然,相对应camera1的调用,也变的复杂一点。 ", e); } } 复制代码 2.3 在camera打开的回调中,可以获取到当前的camera对应的CameraDevice,在onOpened()中执行打开预览的操作。 } catch (CameraAccessException e) { e.printStackTrace(); } } 复制代码 2.6 录像 Android ,操作就是打开Camera,获取预览数据这些了,通过CameraManager,我们能打开对应Id的camera,然后获取到该id对应的Camera设备实例,这个就是CameraDevice了; 那么接下来就是怎么怎么把 ---- 本人从事Android Camera相关开发已有5年 目前在深圳上班 欢迎大家关注我的微信公众号“小驰笔记” 大家一起学习交流

    34910

    Android Camera开发系列:预览镜头缩放(数码变焦)

    CameraCharacteristics.SCALER_AVAILABLE_MAX_DIGITAL_ZOOM); // converting 0.0f-1.0f zoom scale to the actual camera

    34920

    Android--利用camera打造3D效果

    Camera3DView.gif 思路是利用camera对两张图片分别做旋转处理,代码如下 /** * 使用camera实现3d效果的自定义控件 */ public class Camera3DView View { //存放bitmap资源文件id的集合 private List<Integer> bitmapResourceIds; //用于3d变换 private Camera camera; //用于变换的矩阵 private Matrix matrix; //view的宽高 private float viewWidth, viewHeight init(); } private void init() { bitmapResourceIds = new ArrayList<>(); camera = new Camera(); matrix = new Matrix(); mPaint = new Paint(); isDrawFinished

    43720

    Androidcamera获取到的YuvData在jni中转化为Mat方法

    Android中可以通过camera获取图像,并实时处理,不同的手机camera支持的的图像格式不同,可以采用getCameraPreviewFormat来得到preview支持的图像编码格式,Android imwrite("/mnt/sdcard/readYuv.jpg",mBgr); env- ReleaseByteArrayElements(yuv, pBuf, 0); return 0; } 以上这篇Androidcamera获取到的YuvData在jni中转化为Mat方法就是小编分享给大家的全部内容了,希望能给大家一个参考。

    26830

    从今天开始,用对 Android 新老 Camera APIs

    1 Pre-L Camera API 1-1 简介 我们的天天 P 图项目目前使用的是 Lollipop(Android 5.0)以前版本的相机接口。 总结起来,测试了多台机器后发现:AndroidCamera API 不同机型的结果真的是千差万别,可控性也不尽相同。所以 在对拍摄时性能没有非常高的要求(即不担心后期处理帧率无法跟上。 2 Camera2 API 新的相机 API,即 Camera2,是在 Android 5.0(Lollipop)引进的,自此 Google 开始弃用之前的 Camera 类。 Common camera features sorted by the Android API Level in which they were introduced. ? Camera 2 其他注意事项 权限问题:Camera2 的使用权限,5.0 的 Android 设备在配置文件申明即可,6.0 以上的系统需要考虑动态权限问题。

    4.2K104

    一篇文章带你了解Android 最新Camera框架

    这篇文章主要分下面几点来展开讲解: 1)Android 最新Camera 整体框架; 2)Android Camera2 和HAL3 的基本了解; 3)Camera2 介绍; (本文所写的内容基于Android 9.0) 一、Android最新Camera 整体框架 Android Camera整体框架主要包括三个进程:app进程、camera server进程、hal进程 进程之间的通信都是通过binder实现,其中app和camera server通信使用 AIDL(Android Interface Definition Language) ,camera server 如下图所示,展示了Android Camera的最新框架,我们先大概看下图片流程,对整体框架有个基本了解。 Camera Demo 代码: https://github.com/android/camera-samples Google文档,Android Camera 版本介绍 https://source.android.google.cn

    29530

    一篇文章带你了解Android 最新Camera框架

    这篇文章主要分下面几点来展开讲解: 1) Android 最新Camera 整体框架; 2) Android Camera2 和HAL3 的基本了解; 3) Camera2 介绍; (本文所写的内容基于 Android 9.0) 一、Android最新Camera 整体框架 Android Camera整体框架主要包括三个进程:app进程、camera server进程、hal进程(provider进程 进程之间的通信都是通过binder实现,其中app和camera server通信使用 AIDL(Android Interface Definition Language) ,camera server 如下图所示,展示了Android Camera的最新框架,我们先大概看下图片流程,对整体框架有个基本了解。 ? ? Camera Demo 代码: https://github.com/android/camera-samples Google文档,Android Camera 版本介绍 https://source.android.google.cn

    68920

    Android 照相机 camera 操作封装

    项目中经常用到Android自带的camera拍照功能。于是做了个封装,CameraUtil.java类。 再次用到就简单啦,可以最大限度的复用提高效率。 camera) { // 主要就是将图片转化成drawable,设置为固定区域的背景(展示图片),当然也可以直接在布局文件里放一个surfaceView camera) { mCamera = camera; if (mCamera ! camera) { if (Integer.parseInt(Build.VERSION.SDK) >= 8) { // setDisplayOrientation (camera, 0); } else { // parameters.setRotation(90); } } private

    47910

    Android自定义Camera实现拍照功能

    本文记录了用自定义Camera实现的简单拍照功能。 Camera类在5.0以后不推荐使用了,取而代之的是android.hardware.camera2包下的类,本文使用Camera。 implements SurfaceHolder.Callback, Camera.AutoFocusCallback { private SurfaceHolder mHolder; private Camera 的初始化,然后对Camera进行参数的设置(图片尺寸,质量之类的),最后别忘了在View销毁的时候对资源进行释放。 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/<em>android</em>" android:id="@+id/activity_main () { @Override public void onPictureTaken(byte[] data, <em>Camera</em> <em>camera</em>) { mCameraSurfaceView.startPreview

    52020

    android自定义Camera实现录像和拍照

    本文实例为大家分享了android自定义Camera实现录像和拍照的具体代码,供大家参考,具体内容如下 源码: package com.example.myvideocamera; import java.io.BufferedOutputStream // 存放视频的文件夹 private File videFile; // 视频文件 private Handler handler; private int time; // 时间 private Camera camera) { if (success) { camera.takePicture(null, null, jpegCallBack); } } }); break; } } /** * 设置自动对焦 camera) { Bitmap oldBitmap = BitmapFactory.decodeByteArray(data, 0, data.length); Matrix matrix = new <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/<em>android</em>" android:layout_width="fill_parent

    38130

    扫码关注云+社区

    领取腾讯云代金券