当前位置: 首页 > news >正文

网站备案查询工信部微信公众号会员卡管理系统

网站备案查询工信部,微信公众号会员卡管理系统,网页设计与制作设计报告,百度搜索关键词排名优化推广目的#xff1a;打开、关闭前置摄像头#xff0c;绘制图像#xff0c;并获取摄像头的二进制数据。 需要的库 AVFoundation.framework 、CoreVideo.framework 、CoreMedia.framework 、QuartzCore.framework 该摄像头捕抓必须编译真机的版本#xff0c;模拟器下编译不了。 函…目的打开、关闭前置摄像头绘制图像并获取摄像头的二进制数据。 需要的库 AVFoundation.framework 、CoreVideo.framework 、CoreMedia.framework 、QuartzCore.framework 该摄像头捕抓必须编译真机的版本模拟器下编译不了。 函数说明 - (void)createControl { // UI界面控件的创建 } - (AVCaptureDevice *)getFrontCamera; 获取前置摄像头设备 - (void)startVideoCapture; 打开摄像头并开始捕捉图像 其中代码 AVCaptureVideoPreviewLayer* previewLayer  [AVCaptureVideoPreviewLayer layerWithSession: self-avCaptureSession]; previewLayer.frame  localView.bounds; previewLayer.videoGravity  AVLayerVideoGravityResizeAspectFill; [self-localView.layer addSublayer: previewLayer];  为把图片画到UIView里面 - (void)stopVideoCapture:(id)arg 关闭摄像头停止捕抓图像 其中代码 for(UIView*viewinself-localView.subviews) { [viewremoveFromSuperview]; } 为移除摄像头图像的View 详情见代码代码拷过去可以直接使用      Over!!!! 代码 头文件 // //  AVCallController.h //  Pxlinstall // //  Created by Lin Charlie C. on 11-3-24. //  Copyright 2011  xxxx. All rights reserved. // #import UIKit/UIKit.h #import AVFoundation/AVFoundation.h interface AVCallController : UIViewController AVCaptureVideoDataOutputSampleBufferDelegate { //UI UILabel*labelState; UIButton*btnStartVideo; UIView*localView; AVCaptureSession* avCaptureSession; AVCaptureDevice *avCaptureDevice; BOOLfirstFrame; //是否为第一帧 intproducerFps; } property (nonatomic, retain) AVCaptureSession *avCaptureSession; property (nonatomic, retain) UILabel *labelState; - (void)createControl; - (AVCaptureDevice *)getFrontCamera; - (void)startVideoCapture; - (void)stopVideoCapture:(id)arg; end / / / 实现文件     // //  AVCallController.m //  Pxlinstall // //  Created by Lin Charlie C. on 11-3-24. //  Copyright 2011  高鸿移通. All rights reserved. // #import AVCallController.h implementation AVCallController synthesize avCaptureSession; synthesize labelState; // The designated initializer.  Override if you create the controller programmatically and want to perform customization that is not appropriate for viewDidLoad. /* - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {     self  [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];     if (self) {         // Custom initialization.     }     return self; } */ -(id)init { if(self [superinit]) { firstFrame YES; producerFps 50; } returnself; } // Implement loadView to create a view hierarchy programmatically, without using a nib. - (void)loadView { [superloadView]; [selfcreateControl]; } /* // Implement viewDidLoad to do additional setup after loading the view, typically from a nib. - (void)viewDidLoad {     [super viewDidLoad]; } */ /* // Override to allow orientati***** other than the default portrait orientation. - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {     // Return YES for supported orientati*****.     return (interfaceOrientation  UIInterfaceOrientationPortrait); } */ - (void)didReceiveMemoryWarning { // Releases the view if it doesnt have a superview. [superdidReceiveMemoryWarning]; // Release any cached data, images, etc. that arent in use. } - (void)viewDidUnload { [superviewDidUnload]; // Release any retained subviews of the main view. // e.g. self.myOutlet  nil; } - (void)dealloc {     [super dealloc]; } #pragma mark - #pragma mark createControl - (void)createControl { //UI展示 self.view.backgroundColor [UIColorgrayColor]; labelState [[UILabelalloc] initWithFrame:CGRectMake(10, 20, 220, 30)]; labelState.backgroundColor [UIColorclearColor]; [self.viewaddSubview:labelState]; [labelStaterelease]; btnStartVideo [[UIButtonalloc] initWithFrame:CGRectMake(20, 350, 80, 50)]; [btnStartVideosetTitle:StarforState:UIControlStateNormal]; [btnStartVideosetBackgroundImage:[UIImageimageNamed:Images/button.png] forState:UIControlStateNormal]; [btnStartVideoaddTarget:selfaction:selector(startVideoCapture) forControlEvents:UIControlEventTouchUpInside]; [self.viewaddSubview:btnStartVideo]; [btnStartVideorelease]; UIButton* stop  [[UIButtonalloc] initWithFrame:CGRectMake(120, 350, 80, 50)]; [stop setTitle:StopforState:UIControlStateNormal]; [stop setBackgroundImage:[UIImageimageNamed:Images/button.png] forState:UIControlStateNormal]; [stop addTarget:selfaction:selector(stopVideoCapture:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:stop]; [stop release]; localView [[UIViewalloc] initWithFrame:CGRectMake(40, 50, 200, 300)]; [self.viewaddSubview:localView]; [localViewrelease]; } #pragma mark - #pragma mark VideoCapture - (AVCaptureDevice *)getFrontCamera { //获取前置摄像头设备 NSArray *cameras  [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo];     for (AVCaptureDevice *device in cameras) {         if (device.position  AVCaptureDevicePositionFront)             return device;     }     return [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo]; } - (void)startVideoCapture { //打开摄像设备并开始捕抓图像 [labelStatesetText:Starting Video stream]; if(self-avCaptureDevice|| self-avCaptureSession) { [labelStatesetText:Already capturing]; return; } if((self-avCaptureDevice  [self getFrontCamera])  nil) { [labelStatesetText:Failed to get valide capture device]; return; } NSError *error  nil;     AVCaptureDeviceInput *videoInput  [AVCaptureDeviceInput deviceInputWithDevice:self-avCaptureDevice error:error];     if (!videoInput) { [labelStatesetText:Failed to get video input]; self-avCaptureDevice nil;         return;     }     self-avCaptureSession  [[AVCaptureSession alloc] init];     self-avCaptureSession.sessionPreset  AVCaptureSessionPresetLow;     [self-avCaptureSession addInput:videoInput]; // Currently, the only supported key is kCVPixelBufferPixelFormatTypeKey. Recommended pixel format choices are  // kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange or kCVPixelFormatType_32BGRA.  // On iPhone 3G, the recommended pixel format choices are kCVPixelFormatType_422YpCbCr8 or kCVPixelFormatType_32BGRA. //     AVCaptureVideoDataOutput *avCaptureVideoDataOutput  [[AVCaptureVideoDataOutput alloc] init]; NSDictionary*settings  [[NSDictionaryalloc] initWithObjectsAndKeys: //[NSNumber numberWithUnsignedInt:kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange], kCVPixelBufferPixelFormatTypeKey, [NSNumbernumberWithInt:240], (id)kCVPixelBufferWidthKey,                               [NSNumber numberWithInt:320], (id)kCVPixelBufferHeightKey,   nil];     avCaptureVideoDataOutput.videoSettings  settings;     [settings release];     avCaptureVideoDataOutput.minFrameDuration  CMTimeMake(1, self-producerFps); /*We create a serial queue to handle the processing of our frames*/ dispatch_queue_tqueue  dispatch_queue_create(org.doubango.idoubs, NULL);     [avCaptureVideoDataOutput setSampleBufferDelegate:self queue:queue];     [self-avCaptureSession addOutput:avCaptureVideoDataOutput];     [avCaptureVideoDataOutput release]; dispatch_release(queue); AVCaptureVideoPreviewLayer* previewLayer  [AVCaptureVideoPreviewLayer layerWithSession: self-avCaptureSession]; previewLayer.frame  localView.bounds; previewLayer.videoGravity AVLayerVideoGravityResizeAspectFill; [self-localView.layer addSublayer: previewLayer]; self-firstFrame YES;     [self-avCaptureSession startRunning]; [labelStatesetText:Video capture started]; } - (void)stopVideoCapture:(id)arg { //停止摄像头捕抓 if(self-avCaptureSession){ [self-avCaptureSession stopRunning]; self-avCaptureSession nil; [labelStatesetText:Video capture stopped]; } self-avCaptureDevice nil; //移除localView里面的内容 for(UIView*viewinself-localView.subviews) { [viewremoveFromSuperview]; } } #pragma mark - #pragma mark AVCaptureVideoDataOutputSampleBufferDelegate - (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection  { //捕捉数据输出 要怎么处理虽你便 CVPixelBufferRef pixelBuffer  CMSampleBufferGetImageBuffer(sampleBuffer); /*Lock the buffer*/ if(CVPixelBufferLockBaseAddress(pixelBuffer, 0)  kCVReturnSuccess) {         UInt8 *bufferPtr  (UInt8 *)CVPixelBufferGetBaseAddress(pixelBuffer);         size_t buffeSize  CVPixelBufferGetDataSize(pixelBuffer); if(self-firstFrame) {  if(1) { //第一次数据要求宽高类型 int width  CVPixelBufferGetWidth(pixelBuffer); int height  CVPixelBufferGetHeight(pixelBuffer); int pixelFormat  CVPixelBufferGetPixelFormatType(pixelBuffer); switch (pixelFormat) { casekCVPixelFormatType_420YpCbCr8BiPlanarVideoRange: //TMEDIA_PRODUCER(producer)-video.chroma  tmedia_nv12; // iPhone 3GS or 4 NSLog(Capture pixel formatNV12); break; casekCVPixelFormatType_422YpCbCr8: //TMEDIA_PRODUCER(producer)-video.chroma  tmedia_uyvy422; // iPhone 3 NSLog(Capture pixel formatUYUY422); break; default: //TMEDIA_PRODUCER(producer)-video.chroma  tmedia_rgb32; NSLog(Capture pixel formatRGB32); break; } self-firstFrame  NO; } } /*We unlock the buffer*/ CVPixelBufferUnlockBaseAddress(pixelBuffer, 0);      } /*We create an autorelease pool because as we are not in the main_queue our code is  not executed in the main thread. So we have to create an autorelease pool for the thread we are in*/ // NSAutoreleasePool * pool  [[NSAutoreleasePool alloc] init]; //  //    CVImageBufferRef imageBuffer  CMSampleBufferGetImageBuffer(sampleBuffer);  //    /*Lock the image buffer*/ //    CVPixelBufferLockBaseAddress(imageBuffer,0);  //    /*Get information about the image*/ //    uint8_t *baseAddress  (uint8_t *)CVPixelBufferGetBaseAddress(imageBuffer);  //    size_t bytesPerRow  CVPixelBufferGetBytesPerRow(imageBuffer);  //    size_t width  CVPixelBufferGetWidth(imageBuffer);  //    size_t height  CVPixelBufferGetHeight(imageBuffer);   //     //    /*Create a CGImageRef from the CVImageBufferRef*/ //    CGColorSpaceRef colorSpace  CGColorSpaceCreateDeviceRGB();  //    CGContextRef newContext  CGBitmapContextCreate(baseAddress, width, height, 8, bytesPerRow, colorSpace, kCGBitmapByteOrder32Little | kCGImageAlphaPremultipliedFirst); //    CGImageRef newImage  CGBitmapContextCreateImage(newContext);  //  //    /*We release some components*/ //    CGContextRelease(newContext);  //    CGColorSpaceRelease(colorSpace); //     //    /*We display the result on the custom layer. All the display stuff must be done in the main thread because //  UIKit is no thread safe, and as we are not in the main thread (remember we didnt use the main_queue) //  we use performSelectorOnMainThread to call our CALayer and tell it to display the CGImage.*/ // [self.customLayer performSelectorOnMainThread:selector(setContents:) withObject: (id) newImage waitUntilDone:YES]; //  // /*We display the result on the image view (We need to change the orientation of the image so that the video is displayed correctly). //  Same thing as for the CALayer we are not in the main thread so ...*/ // UIImage *image [UIImage imageWithCGImage:newImage scale:1.0 orientation:UIImageOrientationRight]; //  // /*We relase the CGImageRef*/ // CGImageRelease(newImage); //  // [self.imageView performSelectorOnMainThread:selector(setImage:) withObject:image waitUntilDone:YES]; //  // /*We unlock the  image buffer*/ // CVPixelBufferUnlockBaseAddress(imageBuffer,0); //  // [pool drain]; } end 杨航收集技术资料分享给大家
http://www.pierceye.com/news/711707/

相关文章:

  • 开发网站合作协议网站建设团购
  • 管理手机网站网站规划与建设重要性理解与体会
  • 小辰青岛网站建设自己怎么开网站
  • 天津市建设工程合同备案网站网站建设 开发 模板
  • 外贸网站建设公司报价jsp网站建设技术案例
  • 旅行社英文模板网站织梦 网站迁移
  • 北京网站开发不限年龄伊春建设银行网站
  • 通辽公司做网站网站常规seo优化步骤
  • 成都集团网站设计推荐夫唯seo系统培训
  • 服务器有了网站怎么做的零食进货渠道网
  • 网站建设的学习方法桔子建站
  • 公司网站开通长沙免费网站建站模板
  • 汕头手机建站模板建设工程合同司法解释一
  • 品牌网站建设基本流程中山外发加工网
  • 网站迁移教材xyz域名的网站有哪些
  • 茂名公司网站开发tp框架做视频网站
  • 专门做家教的网站优秀网站设计赏析
  • 美食网站的建设背景婚庆网站建设
  • 榆社网站建设销售新品牌如何推广
  • 网站制作的公司哪家比较好网页作图软件
  • 网站开发质保动态wordpress动态主题
  • 建公司网站设计网站公司百度后台登录
  • 响应式网站开发方法建设汽车行业网站
  • 51ppt模板免费下载网站浏览器下载大全免费下载
  • 阳西县建设局网站.net网站项目有哪些
  • 门户网站优化网站建立软件
  • 贵阳网站建设在哪里陕西省住房城乡建设部门户网站
  • 深圳网站建设799元起全包域名企业网站分为哪四类
  • 潍坊网站建设公司商城网站建设建站系统
  • 苏州区网站建设网站前台乱码