Silverlight之摄像头使用

Silverlight之摄像头使用,第1张

概述  摄像头使用: 摄像头捕获动态图形的基本设计过程:     ①获取摄像设备     ②设置捕获源对象     ③设置视频刷     ④填充矩形显示 添加引用 using System.Windows.Media.Imaging;  using System.IO; public VideoCaptureDevice camera;  //定义摄像设备 public CaptureSource c   摄像头使用: 摄像头捕获动态图形的基本设计过程:     ①获取摄像设备     ②设置捕获源对象     ③设置视频刷     ④填充矩形显示 添加引用 using System.windows.Media.Imaging;  using System.IO; public VIDeoCaptureDevice camera;  //定义摄像设备 public CaptureSource capturesource=new CaptureSource(); public VIDeoBrush vIDeoBrush=new VIDeoBrush(); //启动摄像头 private voID Action(){         StartCamera();         //如果允许启动获取的摄像头         if(CaptureDeviceConfigurati on.RequestDeviceAccess()){                   //启动摄像头                   capturesource.Start();         } } private voID StartCamera(){         VIDeoCaptureDevice cameradevice=CaptureDeviceConfigurati on.GetDefaultVIDeoCaptureDe vice();         //如果没有配置摄像头         if(cameradevice==null){                 //信息提示         }else{               camera=CaptureDeviceConfigurati on.GetDefaultVIDeoCaptureDe vice();               //设置捕获源对象设置为摄像头               capturesource.VIDeoCaptureDevice=camera;               //设置视频刷源               vIDeoBrush.SetSource(capturesource);               //利用视频刷填充矩形对象               this.rectangle.Fill=vIDeoBrush;    //xaml页面创建容器         } } //截取静态图片 private voID Cutimage(){       this.capturesource.CaptureImageAsync();       this.capturesource.CaptureImageCompleted+=(ss,se)=>       {             if(se.Error==null){                   this.image.source=se.Result;                   //定义位图对象                   WriteableBitmap bitmap=se.Result;                   Image image=new Image();                   image.WIDth=160;                   image.Stretch=Stretch.Fill;                   //设置Image对象源,显示图形                   image.source=bitmap;                   this.ListBox.Items.Add(image);             }else{                   return;             }       } } //保存图片 private voID SaveImage(){         //创建对象,源来自image         WriteableBitmap bitmap=new WriteableBitmap(image,null);         //保存文件         if(bitmap!=null){                 SavefileDialog saveJPEG=new SavefileDialog();                 saveJPEG.Filter="JPEG files (*.jpeg)|*.jpeg";                 if(saveJPEG.ShowDialog().Value){                       using(Stream jpegstram=saveJPEG.Openfile()){                               SavetoJPEGfile(bitmap,jpegstream);                     }                 }         } } private voID SavetoJPEGfile(WriteableBitmap bitmap,Stram jpegstream){     //获取image信息     int wIDth=bitmap.PixelWIDth;     int height=bitmap.PixelHeight;     int unitrow=3;     byte[][,] lattice=new byte[unitrow][,];     建立图形区     for(int i=0; i<unitrow; i++){             lattice[i]=new byte[wIDth,height];   }     for(int row=0;row<height;row++){           for(int column=0;column<wIDth; column++){                 int pixel=bitmap.Pixels[wIDth*row+column];                 lattice[0][column,row]=(byte(pixel>>16));                 lattice[1][column,row]=(byte(pixel>>8));                 lattice[2][column,row]=(byte)pixel;         }   }   //应用FJ.Core.dll中的类处理  色彩处理       FluxJpeg.Core.colorModel colormodel=new FluxJpeg.Core.colorModel{             colorspace=FluxJpeg.Core.colorSpace.RGB       };       FluxJpeg.Core.Image image2=new FluxJpeg.Core.Image(colormodel,lattice);       //将image2编码为JPEG       MemoryStream stram=new MemoryStram();       FluxJpeg.Core.Encoder.JpegEncoder jpegencoder=new FluxJpeg.Core.Encoder.JpegEncoder(image2,100,stram);       jpegencoder.Encode();       //回到stram的初始位置       stream.Seek(0,SeekOrgin.Begin);       //定义缓存区       byte[] buffer=new Byte[stream.Length];       //获取jpeg数据流,读入缓存       long bytesRead=stream.Read(buffer,(int)stream.Length);       //写入文件流       jpegstream.Write(buffer,buffer.Length);  } //关闭摄像头 private voID Close(){   capturesource.Stop();   this.rectangle.Fill=null; } 总结

以上是内存溢出为你收集整理的Silverlight之摄像头使用全部内容,希望文章能够帮你解决Silverlight之摄像头使用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1009927.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存