以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  拍照  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=140652)

--  作者:kaituozhe
--  发布时间:2019/9/10 20:57:00
--  拍照

这是一个例子,可以打开扫描仪,但是不能拍照,原因是在以下黄色部分代码执行时出现了错误,是什么原因?

Dim pic As WinForm.PictureBox = e.Form.Controls("PicView")
Dim pic2 As WinForm.PictureBox = e.Form.Controls("PicView2")
Dim cam As WinForm.Control = e.Form.Controls("CamView")
Dim box As WinForm.Control = e.Form.Controls("LineBox")
msgbox(1)
\'预览框尺寸
Dim x As Integer = cam.Left
Dim y As Integer = cam.Top
Dim w As Integer = cam.Width
Dim h As Integer = cam.Height
\'截图框尺寸
Dim x1 As Integer = box.Left
Dim y1 As Integer = box.Top
Dim w1 As Integer = box.Width
Dim h1 As Integer = box.Height
msgbox(2)
\'摄像头拍照
_Cap.GrapImg()
msgbox(5)
pic.Image = _Cap.GetBitmap()
msgbox(4)
\'摄像头分辨率
msgbox(pic.Image.Width)
Dim camw As Integer = pic.Image.Width

Dim camh As Integer = pic.Image.Height

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:摄像头拍照 (1).zip


--  作者:kaituozhe
--  发布时间:2019/9/10 21:18:00
--  
可能原因是

_Cap.GrapImg()

pic.Image = _Cap.GetBitmap()

以上两句代码的原因,不知道该怎么修改?


--  作者:有点蓝
--  发布时间:2019/9/10 21:45:00
--  
这个是用在摄像头的,不是扫描仪。

这个地方错说明无法获取拍照的图片,可能是和设备不兼容。换个摄像头试试

--  作者:kaituozhe
--  发布时间:2019/9/11 3:47:00
--  

这是例子中人窗口代码,希望实现先旋转再显示,代码怎么修改?

Dim pbx As WinForm.PictureBox
pbx = Forms("扫描").Controls("PictureBox1")
Dim bmp As New bitmap("C:\\Users\\niuhejun\\Documents\\Foxtable项目\\扫描仪\\自救合同-张森002.jpg")
bmp.RotateFlip(RotateFlipType.Rotate90FlipNone)

pbx.Image = GetImage("C:\\Users\\niuhejun\\Documents\\Foxtable项目\\扫描仪\\自救合同-张森002.jpg")
pbx.SizeMode = ImageSizeMode.Zoom


--  作者:kaituozhe
--  发布时间:2019/9/11 3:48:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:扫描仪.zip


--  作者:kaituozhe
--  发布时间:2019/9/11 4:05:00
--  

添加按钮写入代码

Dim Proc As New Process
Proc.File = "拍照程序的路径和名称"
Proc.Start()
Proc.
WaitForExit() \'等带拍照程序退出。

显示“软件已运行,正在激活”,这是为什么,该怎么做?


--  作者:有点蓝
--  发布时间:2019/9/11 9:04:00
--  
Dim pbx As WinForm.PictureBox
pbx = Forms("扫描").Controls("PictureBox1")
Dim bmp As New bitmap("C:\\Users\\niuhejun\\Documents\\Foxtable项目\\扫描仪\\自救合同-张森002.jpg")
pbx.Image = bmp
……

--  作者:有点蓝
--  发布时间:2019/9/11 9:07:00
--  
6楼说明拍照的程序已经运行。如果无法激活,先把程序关闭
--  作者:kaituozhe
--  发布时间:2019/9/11 9:46:00
--  

添加按钮写入代码

Dim Proc As New Process
Proc.File = "拍照程序的路径和名称"
Proc.Start()

Proc.
WaitForExit() \'等带拍照程序退出。

显示“软件已运行,正在激活”,这是为什么,该怎么做?


 

以上代码再配合7楼的代码,实现扫描后把图片展示在窗口上,但是如果只有黄色代码就会显“示软件已运行,正在激活”,实际也没有扫描,如果全部代码就会也没有扫描这是什么原因?
--  作者:有点蓝
--  发布时间:2019/9/11 10:01:00
--  
这个应该是调用的外部程序的问题。我也不明白为什么