Delphi 摄像头 设置图像的大小 再线等,急
本人 是搞c#的 最近经理直接扔个delphi功能给我...
就是用摄像头照到一张图,什么格式的没关系,只要长和高的大小能设置就行了
实属无奈,从网上找了篇文章,抄上
http://blog.163.com/smxliujianghui/blog/static/293983112009024349410/
图片是照出来了
但是就是不晓得怎么设置大小
首先获得
re:=SendMessage(hWndC,WM_CAP_GET_VIDEOFORMAT,sizeof(binfo),Integer(@binfo));
然后修改
binfo.bmiHeader.biSize:= SizeOf(binfo.bmiHeader);
binfo.bmiHeader.biWidth:=Panel1.Width;
binfo.bmiHeader.biHeight:=Panel1.Height;
binfo.bmiHeader.biCompression:=BI_RGB;
binfo.bmiHeader.biPlanes:=1;
binfo.bmiHeader.biBitCount:=16;
binfo.bmiHeader.biSizeImage:= (((Panel1.Width * binfo.bmiHeader.biBitCount) + 31) div 32) * 4 * Panel1.Height;
最后
re :=SendMessage(hWndc,WM_CAP_SET_VIDEOFORMAT,sizeof(binfo),Integer(@binfo));
第一步获得设置的BITMAPINFO re=1(成功)
第三步把修改设置,把BITMAPINFO放入 re=0(失败)
不知道为什么!
也不知道思路对不对
请大家的给点思路,如果知道做的,请给点代码,谢谢
[解决办法]
LZ可以尝试下videocap组件
procedure TForm1.FormCreate(Sender: TObject);begin VideoCap1.DriverIndex:=0; VideoCap1.DriverOpen:=True; VideoCap1.VideoPreview:=True;end;procedure TForm1.Button1Click(Sender: TObject);Var jpeg: TJPEGImage; bmp: TBitmap; strfilename:String;beginimage1.Refresh; inherited; strfilename:=extractfilepath(Application.ExeName); begin if not VideoCap1.SaveAsDIB then begin ShowMessage('拍摄照片失败'); Abort; end; bmp:= TBitmap.Create; try bmp.LoadFromFile(strfilename+ 'Capture.bmp' ); jpeg:= TJPEGImage.Create; try jpeg.Assign(bmp); Image1.Picture.Graphic:=jpeg; finally jpeg.free; end; finally bmp.free; end; end;end;procedure TForm1.Button2Click(Sender: TObject);begin VideoCap1.DlgVFormat;end;procedure TForm1.Button3Click(Sender: TObject);begin VideoCap1.DlgVSource;end;procedure TForm1.Button4Click(Sender: TObject);beginif savedialog1.Execute thenimage1.Picture.SaveToFile(savedialog1.FileName);end;
[解决办法]