精华内容
下载资源
问答
  • android 不预览拍照 后台拍照

    千次下载 热门讨论 2013-09-30 23:35:51
    调用摄像头实现不预览拍照,后台拍照,并转换照片格式为竖屏,保存到SD卡
  • ZSL拍照和普通拍照

    2020-02-24 10:42:14
    ZSL(zero shutter lag):零延时拍照。 普通模式 1.开始预览,出预览帧,这个时候已经正常预览了 2.这个时候按下shutter,开始拍照,开始拍照的时候,预览流停止, 3.拍照的时候要做一系列的动作,af对焦,准备...

    ZSL(zero shutter lag):零延时拍照。

    普通模式
    在这里插入图片描述
    在这里插入图片描述
    1.开始预览,出预览帧,这个时候已经正常预览了
    2.这个时候按下shutter,开始拍照,开始拍照的时候,预览流停止,
    3.拍照的时候要做一系列的动作,af对焦,准备拍照,曝光,
    4.拍照流数据回调,这个时候是raw数据,然后开始对raw数据进行编码
    5.编码成为JPEG,然后保存,此时拍照完成,从新开始预览。

    传统的快照,也就是在拍照的时候,预览是停止的。
    拍照结束后,预览将在C2D模块之后,重新开始预览

    ZSL模式
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 互动拍照 — AR拍照

    2020-03-16 17:09:04
    广义的说,所有在实景画面上叠加了虚拟元素都属于增强现实拍照,比如叠加相框的前景拍照,或者抠像前后景叠加。 但是我们一般提到AR拍照,都是需要基于人体或者人脸的位置信息进行元素叠加,且这些元素需要跟着目标...

    广义的说,所有在实景画面上叠加了虚拟元素都属于增强现实拍照,比如叠加相框的前景拍照,或者抠像前后景叠加。

    但是我们一般提到AR拍照,都是需要基于人体或者人脸的位置信息进行元素叠加,且这些元素需要跟着目标位置移动,甚至是旋转。比如在用户头顶虚拟出帽子,人脸上虚拟出胡子,人手上出现气球。

    硬件

    可以使用网络摄像头,基于OpenCV去框定人脸、五官、手去做AR的功能。也可以使用体感设备,比如Kinect去做位置的跟踪。由于早期Kinect在这方面接入比较方便,在使用Unity的情况下,Kinect比OpenCV要更加精准和稳定,所以一直以来,使用体感设备会比较多。

    其他硬件需要准备的就是主机和显示设备,比如电视或者LED拼接屏。

    软硬件的准备工作参考:Unity体感应用开发——Kinect V2 获取彩色摄像头数据

    软件

    在准备好硬件,sdk和开发环境Unity,并导入了插件之后:

    1 非脸部骨骼点跟踪

    关注OverlayDemo的JointOverlayer脚本:

    Foreground Camera:根据这个摄像机去判断基准方向,并将骨骼点的在彩色坐标系中的数据换算为Unity世界坐标数据。

    playerIndex:跟踪哪一个玩家的骨骼点。

    trackedJoint:就是需要OverlayObject去跟踪的骨骼类型。

    OverlayObject:你需要AR的虚拟物体。

    Smooth Factor:为了防止侦测信息的抖动,用了一个Lerp去渐变位置和旋转。

    Tips:

    1 帽子:帽子的位置严格来说不是Head的位置,而应该是Head的Pos+(Head的Vector3 - Neck的Vector3)

    2 其他位置:骨骼点在实际彩色画面中的体现,不是人体的边缘。所以UI素材在处理上要有一定的空间留出来。

    2 脸部骨骼点跟踪

    关注KinectFaceTrackingDemo5的FacePointOverlayer脚本

    配置参数与上述相似,包含35个面部关键点。

    效果

    展开全文
  • Android静默拍照(无感知拍照)

    万次阅读 2017-06-09 13:17:48
    在安卓系统下,实现拍照主要有两种方式:第一种就是直接调用系统的相机实现拍照,简单快捷。但是弊端就是不能自定义拍照界面。第二种就是根据Android系统提供的相关API进行自定义拍照,这样就是可以根据具体需求实现...

    在安卓系统下,实现拍照主要有两种方式:第一种就是直接调用系统的相机实现拍照,简单快捷。但是弊端就是不能自定义拍照界面。第二种就是根据Android系统提供的相关API进行自定义拍照,这样就是可以根据具体需求实现相机界面。

    本篇文章主要讲解根据系统API自定义相机拍照,使用SurfaceView进行相机预览图,但是我们要实现的是静默拍照 也就是说不能出现预览图,但是由于安全因素考虑,Android系统规定自定义拍照必要要有预览图,所以我们可以投机取巧,将SufaceView预览图的宽高均设置为0.1dp ,这样用户就看不到预览图了。其次就是将拍照界面的背景设置为透明即可。具体代码如下:

    布局:

     

    <?xml version="1.0" encoding="utf-8"?>
    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="0.1dp"
        android:layout_height="0.1dp">
    
        <SurfaceView
            android:id="@+id/surface_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    
    </FrameLayout>
    


    设置Activiry的透明Style:

     

     

        <style name="touming" parent="AppTheme">
            <item name="android:windowBackground">@android:color/transparent</item>
            <item name="android:colorBackgroundCacheHint">@null</item>
            <item name="android:windowIsTranslucent">true</item>
            <item name="android:windowAnimationStyle">@android:style/Animation</item>
            <item name="windowNoTitle">true</item>
            <item name="windowActionBar">false</item>
            <item name="android:windowContentOverlay">@null</item>
        </style>

     

     

     

     

     

    下面为自定义相机功能:

    设置surfaceView:

     

            mSurfaceView = (SurfaceView) findViewById(R.id.surface_view);
    
            mSurfaceHolder = mSurfaceView.getHolder();
            mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
            mSurfaceHolder.addCallback(new NewSurfaceHoler());

     

    实现SurfaceView的回调:

        class NewSurfaceHoler implements SurfaceHolder.Callback {
    
            @Override
            public void surfaceCreated(SurfaceHolder holder) {
                try {
    
                    Camera.CameraInfo cameraInfo = new Camera.CameraInfo();
                    int numberOfCameras = Camera.getNumberOfCameras();
                    for (int i = 0; i < numberOfCameras; i++) {
                        Camera.getCameraInfo(i, cameraInfo);
                        if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
                            mCamera = Camera.open(i);
                            mCamera.setPreviewDisplay(holder);
                            mCamera.setDisplayOrientation(getPreviewDegree(PhotoActivity.this));
                            mCamera.startPreview();
    
                            /**
                             * 相机开启需要时间 延时takePicture
                             */
                            new Handler().postDelayed(new Runnable() {
                                @Override
                                public void run() {
                                    mCamera.takePicture(null, null, new Camera.PictureCallback() {
                                        @Override
                                        public void onPictureTaken(byte[] data, Camera camera) {
                                            Bitmap source = BitmapFactory.decodeByteArray(data, 0, data.length);
                                            int degree = Config.readPictureDegree(getFilePath());
                                            Bitmap bitmap = Config.rotaingImageView(degree, source);
    
                                            Config.Image = bitmap;
                                            saveBitmap(bitmap, new File(getFilePath()));
    
                                        }
                                    });
                                }
                            }, 2000);
                        }
                    }
    
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
    
            @Override
            public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
                Camera.Parameters parameters = mCamera.getParameters(); // 获取各项参数
                parameters.setPictureFormat(PixelFormat.JPEG); // 设置图片格式
                parameters.setJpegQuality(100); // 设置照片质量
    
                /**
                 * 以下不设置在某些机型上报错
                 */
                int mPreviewHeight = parameters.getPreviewSize().height;
                int mPreviewWidth = parameters.getPreviewSize().width;
                parameters.setPreviewSize(mPreviewWidth, mPreviewHeight);
                parameters.setPictureSize(mPreviewWidth, mPreviewHeight);
    
                mCamera.setParameters(parameters);
            }
    
            @Override
            public void surfaceDestroyed(SurfaceHolder holder) {
                mCamera.stopPreview();
                mCamera.unlock();
                mCamera.release();
            }
        }


    以上就是拍照的核心代码。

     

    还有其他细节设置比如:预览图角度旋转, 拍照后图片旋转设置等代码下载Demo 查看。

     

    Demo下载

     

    扫描下方二维码关注公众号,及时获取文章推送

     

    展开全文
  • IOS 使用相机拍照和自定义拍照界面

    千次下载 热门讨论 2015-04-01 12:52:57
    Demo详细介绍了如何使用系统的相机,并且访问相册。第二个界面介绍了如何自定义拍照界面。详细讲解参见我的博客blog.csdn.net/hello_hwc
  • PlayCamera_V1.0.0(SurfaceView预览Camera,拍照demo)

    千次下载 热门讨论 2014-06-23 19:26:18
    SurfaceView预览Camera,拍照demo),详见博客:http://blog.csdn.net/yanzi1225627/article/details/33028041
  • Flutter从相册选择图片和相机拍照(image_picker)

    万次阅读 热门讨论 2019-03-08 13:03:59
    Flutter中从相册选择图片和拍照获取图片教程

    Flutter获取相册中的图片和用相机拍照

    在原生开发中,拍照及从图库选择图片是非常常见的需求,而且原生的图片选择第三方库也有很多并且很完善了。
    Flutter也给我们提供了好用的图片选择插件,ios和Android都能用的呦!
    image_picker

    先上图

    Flutter拍照:
    在这里插入图片描述

    Flutter选择图片
    在这里插入图片描述

    使用方法

    首先添加依赖

    在pubspec.yaml加入image_picker的依赖,版本号在github上找最新的即可。

    如下:
    在这里插入图片描述
    依赖添加完成点击右上角的 Packages get 出现finished及可。
    在这里插入图片描述

    使用
    依赖添加完成之后我们就可以正常使用了
    首先要导包:

    import 'package:image_picker/image_picker.dart';
    

    我们先来看看ImagePicker提供的方法,目前有两个,选图片和选视频。
    其中选择图片可以通过图库和相机的方式获得。

    在这里插入图片描述

    我们主要来看看图片

    拍照

     var image = await ImagePicker.pickImage(source: ImageSource.camera);
    

    相册

     var image = await ImagePicker.pickImage(source: ImageSource.gallery);
    

    是不是超级简单,在Android上权限申请都不需要管。

    下面是完整代码:

    import 'package:flutter/material.dart';
    import 'package:image_picker/image_picker.dart';
    
    class ImagePickerWidget extends StatefulWidget {
      @override
      State<StatefulWidget> createState() {
        return _ImagePickerState();
      }
    }
    
    class _ImagePickerState extends State<ImagePickerWidget> {
      var _imgPath;
    
      @override
      Widget build(BuildContext context) {
        return Scaffold(
            appBar: AppBar(
              title: Text("ImagePicker"),
            ),
            body: SingleChildScrollView(
              child: Column(
                children: <Widget>[
                  _ImageView(_imgPath),
                  RaisedButton(
                    onPressed: _takePhoto,
                    child: Text("拍照"),
                  ),
                  RaisedButton(
                    onPressed: _openGallery,
                    child: Text("选择照片"),
                  ),
                ],
              ),
            ));
      }
    
      /*图片控件*/
      Widget _ImageView(imgPath) {
        if (imgPath == null) {
          return Center(
            child: Text("请选择图片或拍照"),
          );
        } else {
          return Image.file(
            imgPath,
          );
        }
      }
    
      
      /*拍照*/
      _takePhoto() async {
        var image = await ImagePicker.pickImage(source: ImageSource.camera);
    
        setState(() {
          _imgPath = image;
        });
      }
    
      /*相册*/
      _openGallery() async {
        var image = await ImagePicker.pickImage(source: ImageSource.gallery);
        setState(() {
          _imgPath = image;
        });
      }
    }
    
    
    

    注意事项

    当图片过长超过显示宽高度的话,可能会报 The overflowing RenderFlex has an orientation of Axis.vertical. 这个错,且底部会有黄色的警告。
    具体报错信息大概如下:

    ══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY ╞═════════════════════════════════════════════════════════
    I/flutter (10595): The following message was thrown during layout:
    I/flutter (10595): A RenderFlex overflowed by 177 pixels on the bottom.
    I/flutter (10595):
    I/flutter (10595): The overflowing RenderFlex has an orientation of Axis.vertical.
    I/flutter (10595): The edge of the RenderFlex that is overflowing has been marked in the rendering with a yellow and
    I/flutter (10595): black striped pattern. This is usually caused by the contents being too big for the RenderFlex.
    I/flutter (10595): Consider applying a flex factor (e.g. using an Expanded widget) to force the children of the
    I/flutter (10595): RenderFlex to fit within the available space instead of being sized to their natural size.
    I/flutter (10595): This is considered an error condition because it indicates that there is content that cannot be
    I/flutter (10595): seen. If the content is legitimately bigger than the available space, consider clipping it with a
    I/flutter (10595): ClipRect widget before putting it in the flex, or using a scrollable container rather than a Flex,
    I/flutter (10595): like a ListView.

    这里我们直接使用 SingleChildScrollView(单个子控件的滚动布局控件) 即可。


    需要demo的可以下载: Flutter拍照和相册选择图片Demo


    如果你觉得本文对你有帮助,麻烦动动手指顶一下,算是对本文的一个认可。也可以关注我的 Flutter 博客专栏,我会不定期的更新,如果文中有什么错误的地方,还望指正,转载请注明转自喻志强的博客 ,谢谢!

    展开全文
  • HTML5 Plus 拍照或者相册选择图片上传

    万次阅读 多人点赞 2016-07-13 14:34:57
    HBuilder+HTML5 Plus+MUI实现拍照或者相册...Camera模块管理设备的摄像头,可用于拍照、摄像操作,通过plus.camera获取摄像头管理对象。Gallery模块管理系统相册,支持从相册中选择图片或视频文件、保存图片或视频文...
  • Android拍照、相册选取、截图综合Demo

    千次下载 热门讨论 2013-03-10 16:08:36
    实现Android相机拍照、相册选取后直接显示以及截图后显示,解决因Bitmap导致的内存溢出问题。
  • 官方API里的camera.takePicture()有延时,有什么方法可以实现快速拍照,一点即拍,不要有延时的
  • CameraView项目地址:CJT2325/CameraView 简介:仿微信拍照,长按录视频的拍照控件更多:作者 提 Bug 标签:Camera-使用方法Gradle 依赖: compile 'cjt.library.wheel:camera :1.1.9'引用源码 : clone 源码后 ...
  • Android 7.0调用相机拍照,返回后显示拍照照片

    万次阅读 多人点赞 2017-05-13 17:02:10
    Android 7.0调用相机拍照,返回后显示拍照照片,并显示到手机相册中
  • c#控制摄像头拍照

    热门讨论 2012-09-16 18:34:33
    c#控制摄像头拍照,可以选择摄像头和进行分辨率设置
  • 拍照的场景中,一般的视频预览和抓拍的分辨率是不一样的,而且拍照的ISP的效果处理需要对人脸的肤色等做优化处理,也会和视频的预览通路不一样。所以抓拍的数据通路分为单pipe和双pipe两种,并且VI的pipe工作模式...
  • 摘要:许多情况下我们需要用到摄像头获取图像,进而处理图像,这篇博文介绍利用pyqt5、OpenCV实现用电脑上连接的摄像头拍照并保存照片。为了使用和后续开发方便,这里利用pyqt5设计了个相机界面,后面将介绍如何实现...
  • 前言:这段时间也真是忙到死,本来一个月四篇的承诺,眼看就要打破了,咬着牙再出两篇,最近写工程时,遇到拍照和裁剪功能,也真是服了,各种问题有木有,最后终于找着了一个解决方案,就目前来讲,应用在工程中,还...
  • camera 拍照流程

    2017-12-03 23:50:31
    1.拍照命令时序图 2.拍照数据回调时序图
  • 问题描述:视频录像模式下,快速点击拍照按键,然后各按钮功能失效 这种问题在mtk平台上碰到过,现在做高通平台又碰到。 mtk平台上把摄像头堵住的情况下比较容易复现,...app层:拍照的时候首先会下拍照的动作,然...
  • android拍照

    千次阅读 2012-11-16 15:04:07
    拍照可以调用系统的相机进行拍照,拍完保存到相应的SD卡目录。最近要用到拍照这个功能,首先试了下调用相机拍照,保存到相应目录,然后用imageview显示的时候感觉,很模糊。可能是图片被压缩的太狠了。所以自己使用...
  • 微信小程序自定义拍照的 微信小程序代码: <camera mode="normal" device-position="{{direction}}" flash="auto" binderror="error" class="info-camera"> <cover-view class="controls"> <...
  • 拍照截图】Android 系统拍照和截图

    千次阅读 2016-10-22 16:06:39
    拍照和截图 过程理解
  • 控制摄像头拍照

    千次阅读 2018-01-08 13:44:13
    现在的智能手机和平板电脑一般都会提供摄像头拍照功能。在Android中提供了专门用于处理摄像头相关事件的类,即android.hardware包中的Camera类。Camera类没有构造方法,可以通过其提供的open()方法打开摄像头。打开...
  • 1、启动系统拍照intent,并直接返回图片数据2、启动系统拍照intent,拍照后存储在指定的路径下,返回后app主动读取路径下的图片文件。首先要定义一个第一种方式:启动拍照,返回图片数据获取拍摄的照片,照片数据存放...
  • WPF拍照功能源码程序下载

    热门讨论 2017-01-06 15:28:03
    WPF拍照程序,可以拍照,重拍,可以选择摄像头。有喜欢的可以看下。
  • android camera无预览拍照 后台拍照

    万次阅读 热门讨论 2013-09-30 23:43:10
    前言:相信有许多人和我一样,希望在不让用户知道的情况下,使用后台Server调用摄像头拍照, 在网上找了不少资料,大致都讲到不预览无法实现拍照,涉及到用户隐私,属于非法调用摄像头...怎么办!!! 曾经看到一篇...
  • 使用拍照功能,测试了几款,有SD 卡的,无SD卡的 其他手机暂无问题.小米手机有SD卡, 但一直报 Unable to decode stream: java.io.FileNotFoundException: /storage/emulated/0/...
  • 拍照赚钱APP

    千次阅读 2018-09-17 01:55:09
    当今时代网络的快速发展使得互联网自主服务成为流行趋势,“拍照赚钱”是移动互联网下的一种自助式服务模式。用户下载APP,注册成为APP的会员,然后从APP上领取需要拍照的任务,赚取APP对任务所标定的酬金。这种基于...
  • 移动端拍照实现

    2018-02-03 16:32:58
    拍照 从手机相册选择 取消 JS:已经实现 //拍照 var takePictureOnclick = function() { var takePicture = document.getElementById('takepicture'); takePicture.click(); } ...
  • 下面,我们就来分享一下OPPOA72拍照全面测评。来源:手机评测 拍照评测丨这素质已经够在朋友圈横行了 相机方面,作为一款千元机的OPPO A72配置简直让人有点出乎意料,后置了1600万像素主摄+800万超广角+200万人...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 32,524
精华内容 13,009
关键字:

拍照