2 maowade maowade 于 2016.03.24 10:21 提问

C#调用摄像头拍的照片是黑的

private void Page_Loaded(object sender, RoutedEventArgs e) {

        this.videoCaptureElement = new VideoCaptureElement();
        this.videoCaptureElement.BeginInit();
        this.videoCaptureElement.Width = 568;
        this.videoCaptureElement.Height = 364;

                    //videoCaptureElement position
                    Canvas.SetTop(videoCaptureElement, 200);
        Canvas.SetLeft(videoCaptureElement, 200);

        string[] inputNames = MultimediaUtil.VideoInputNames;
        this.videoCaptureElement.VideoCaptureSource = inputNames[0];
        this.videoCaptureElement.EndInit();
        this.videoCaptureElement.Play();
        this.CameraRenderLayer.Children.Add(this.videoCaptureElement);

        //button event

        TakePic.MouseLeftButtonDown += new MouseButtonEventHandler(takePhoto);

    }
    private void pagePrevious(object sender, RoutedEventArgs e) {

        this.NavigationService.Content = new BirthdayPage();
    }
    private void takePhoto(object sender, RoutedEventArgs e) {




        RenderTargetBitmap bmp = new RenderTargetBitmap((int)this.videoCaptureElement.ActualWidth, (int)this.videoCaptureElement.ActualHeight, 96, 96, PixelFormats.Pbgra32);
        bmp.Render(this.videoCaptureElement);
        BitmapEncoder encoder = new JpegBitmapEncoder();
        encoder.Frames.Add(BitmapFrame.Create(bmp));
        string now = DateTime.Now.Year + "" + DateTime.Now.Month + "" + DateTime.Now.Day + "" + DateTime.Now.Hour + "" + DateTime.Now.Minute + "" + DateTime.Now.Second;
        string filename = "D:\\" + UserInfoSingleton.sharedInstance().UserName + "pic.jpg";
        FileStream fstream = new FileStream(filename, FileMode.Create);
        encoder.Save(fstream);
        fstream.Close();
        videoCaptureElement.Stop();

    }

如果我把Canvas.SetTop(videoCaptureElement, 200); Canvas.SetLeft(videoCaptureElement, 200);这两句注释掉,就能正常拍出照片,但是一旦调整了videoCaptureElement的位置拍出的照片就是黑色的

1个回答

CSDNXIAOD
CSDNXIAOD   2016.03.30 11:21

C#调用摄像头
[摘]C#摄像头调用
C#代码调用摄像头
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
定时拍照(每隔5秒拍一张照片)
运行程序后,每隔5秒钟,通过摄像头拍一张照片。照片被存放在E盘根目录下。
Android 使用系统摄像头拍相片与拍视频,并显示
public class OpenCamaraActivity extends BaseActivity { private static final int IMAGE_REQUEST_CODE = 0; private static final int VIDEO_REQUEST_CODE = 1; @Override protected void onCreate(
C# 调用摄像头拍照,保存,以及对图片二值化
本例程基于C#调用摄像头拍照,可进行拍照、保存,以及对拍照的图片进行灰度、二值化处理(包含13种基于直方图的图像大局二值化算法----采用的是原作者: laviewpbt的代码),本例程同时也可以导入本地图片进行二值化处理。
Android之如何解决部分手机拍照拍出来的照片是黑色
如何解决部分手机拍照拍出来的照片是黑色          最近项目做的是远程拍照和远程截屏的问题,远程截屏用的是Android 5.0之后的API,MediaPrejectionManger,          拍照用的是调用系统的camera,用的surfaceView进行预览,但是问题出现了,部分手机排出来的照片是黑屏的 解决办法:        当我们初始化相机的时候,然后直接调su
在网页中调用摄像头实现拍照上传 - 高拍仪二次开发
在网页中调用摄像头实现拍照上传 高拍仪二次开发     在一些公共部门的办事处,比如银行、护照办理中心、税务等,我们可能会注意到办公桌上摆着这样一台机器。办公人员用它拍摄各种证件、文件、表格,有时候还会拍摄人物面部照片。 这个仪器的名字是高拍仪。正如你猜测的一样,高拍仪的本质就是摄像头。有些高拍仪只有一个摄像头,用来拍平板上的文档。有些高档一些的在顶部还有一个摄像头,一般用来拍面部
WPF调用本地摄像头拍照并保存为图片
WPF调用本地摄像头进行拍照,并将照片保存为.jpg图片,存放于Debug目录下的photos文件夹内。
C#操作摄像头 实现拍照功能
从正式工作以来一直做的都是基于B/S的Web开发,已经很长时间不研究C/S的东西了,但是受朋友的委托,帮他做一下拍照的这么个小功能。其实类似的代码网上有很多,但是真的能够拿来运行的估计也没几个。本来是说周末给做的,但是这两天脑子一直很乱,也没静下来,晚上了,再不做明天有点不好意思啊,只能临时做一个了。在网上找资料自己做的过程中也发现了一些问题,于是拿到博客上来分享一下,这样一来有需要的朋友可以直接
调用手机的摄像头,并且返回照片显示在程序界面上.
在多媒体应用中,Image是最基础的功能模块,接下来我们将看看在Android中是如何获取和存储Image的。Android内嵌的Image获取和存储功能,可以让我们对于整个媒体框架有个比较全面的了解,同时为audio和video的学习打下基础。 一、Image的获取可以通过调Android自带的Camera应用来完成。该应用含有一个Intent-Filter。通过使用 Intent inte
Android 调用摄像头功能【拍照与视频】
应用场景:在Android开发过程中,有时需要调用手机自身设备的功能,上篇文章主要侧重摄像头拍照功能的调用。本篇文章将综合实现拍照与视频的操作。
html页面通过ActiveX控件调用摄像头实现拍照上传demo代码下载
原文:html页面通过ActiveX控件调用摄像头实现拍照上传demo代码下载 源代码下载地址:http://www.zuidaima.com/share/1832077946801152.htm 1.功能 摄像头控件用于在Web编程中辅助您完成图像采集、截图,并上传到服务器当中,支持USB外置摄像头、内置摄像头及部分型号高拍仪设备.        该摄像头控件工作在客户端