当前位置: 代码迷 >> PB >> pb调用摄像头有关问题,求
  详细解决方案

pb调用摄像头有关问题,求

热度:29   发布时间:2016-04-29 05:55:52.0
pb调用摄像头问题,急求!
有一个pb调用摄像头问题,现在已经能实现将摄像头图片保存为bmp文件,现在想保存为jpg文件,该如何操作?我是调用的api!
代码如下:
1、打开摄像头代码
//定义常数
long WM_USER=1024
long WM_CAP_START = WM_USER 
long WM_CAP_STOP = WM_CAP_START + 68 
long WM_CAP_DRIVER_CONNECT = WM_CAP_START + 10 
long WM_CAP_DRIVER_DISCONNECT = WM_CAP_START + 11 
long WM_CAP_SAVEDIB = WM_CAP_START + 25 
long WM_CAP_GRAB_FRAME = WM_CAP_START + 60 
long WM_CAP_SEQUENCE = WM_CAP_START + 62 
long WM_CAP_FILE_SET_CAPTURE_FILEA = WM_CAP_START + 20 
long WM_CAP_SEQUENCE_NOFILE =WM_CAP_START+  63 
long WM_CAP_SET_OVERLAY =WM_CAP_START+  51 
long WM_CAP_SET_PREVIEW =WM_CAP_START+  50 
long WM_CAP_SET_CALLBACK_VIDEOSTREAM = WM_CAP_START +6 
long WM_CAP_SET_CALLBACK_ERROR=WM_CAP_START +2 
long WM_CAP_SET_CALLBACK_STATUSA= WM_CAP_START +3 
long WM_CAP_SET_CALLBACK_FRAME= WM_CAP_START +5 
long WM_CAP_SET_SCALE=WM_CAP_START+  53 
long WM_CAP_SET_PREVIEWRATE=WM_CAP_START+  52 
//初始化代码
string lpszName
ulong l1
l1=handle(parent)
lpszName='摄像头界面...'
lhand=capCreateCaptureWindowA(lpszName,262144+12582912+1073741824 + 268435456,10,0,300,300,l1,0)
if lhand <> 0 then   
  send(lhand, WM_CAP_SET_CALLBACK_VIDEOSTREAM, 0, 0) 
  send(lhand, WM_CAP_SET_CALLBACK_ERROR, 0, 0) 
  send(lhand, WM_CAP_SET_CALLBACK_STATUSA, 0, 0) 
  send(lhand, WM_CAP_DRIVER_CONNECT, 0, 0) 
  send(lhand, WM_CAP_SET_SCALE, 1, 0) 
  send(lhand, WM_CAP_SET_PREVIEWRATE, 66, 0) 
  send(lhand, WM_CAP_SET_OVERLAY, 1, 0)
  send(lhand, WM_CAP_SET_PREVIEW, 1, 0) 
end if

2、保存图像:
//ls_bianhao 用于从w_jibenxinxitjxg中通过openwithparm()传递过来的编号,以这个编号来保存照片
string ls_bianhao
ls_bianhao = message.stringparm
//messagebox("",ls_bianhao)
//ls_bianhao = parent.dw_jibenxinxitjxg.object.bianhao[1]
//定义常数
long WM_USER=1024
long WM_CAP_START = WM_USER 
long WM_CAP_STOP = WM_CAP_START + 68 
long WM_CAP_DRIVER_CONNECT = WM_CAP_START + 10 
long WM_CAP_DRIVER_DISCONNECT = WM_CAP_START + 11 
long WM_CAP_SAVEDIB = WM_CAP_START + 25 
long WM_CAP_GRAB_FRAME = WM_CAP_START + 60 
long WM_CAP_SEQUENCE = WM_CAP_START + 62 
long WM_CAP_FILE_SET_CAPTURE_FILEA = WM_CAP_START + 20 
long WM_CAP_SEQUENCE_NOFILE =WM_CAP_START+  63 
long WM_CAP_SET_OVERLAY =WM_CAP_START+  51 
long WM_CAP_SET_PREVIEW =WM_CAP_START+  50 
long WM_CAP_SET_CALLBACK_VIDEOSTREAM = WM_CAP_START +6 
long WM_CAP_SET_CALLBACK_ERROR=WM_CAP_START +2 
long WM_CAP_SET_CALLBACK_STATUSA= WM_CAP_START +3 
long WM_CAP_SET_CALLBACK_FRAME= WM_CAP_START +5 
long WM_CAP_SET_SCALE=WM_CAP_START+  53 
long WM_CAP_SET_PREVIEWRATE=WM_CAP_START+  52 

//初始化代码
string lpszName
ulong l1
l1=handle(parent)

//保存为图片
string ls_zhaopianname
ls_zhaopianname = ls_bianhao+ ".bmp"
if lhand <> 0 then 
Send(lhand,WM_CAP_SAVEDIB,0,ls_zhaopianname);
end if
parent.p_1.picturename = " "
parent.p_1.picturename = ls_zhaopianname
w_jibenxinxitjxg.p_1.picturename = " "
w_jibenxinxitjxg.p_1.picturename = ls_zhaopianname
------解决方案--------------------
引用:
//保存为图片
 string ls_zhaopianname
 ls_zhaopianname = ls_bianhao+ ".bmp"
 if lhand <> 0 then 

改成.jpg
------解决方案--------------------
只能BMP转JPG吧
  相关解决方案