我想做个摄像头拍照功能,
我的摄像头显示部分已经放置在一个Picturebox中,当我点"拍摄"按钮时,
想实现把摄像头显示的画面拷贝到另外一个picturebox中,然后选择裁减图片,把需要的部分裁减下来,现在拷贝到实现了,
当问题出现了  1) 当我点了拍照后imgae控件跑到了picturebox中下去了
              2) 由于摄像头分辨率非常高(如果不高,摄出来的图片根本没法用),拷贝到picturebox中时也正常的,但我认为拷贝过来的图片虽然
                 看起来这那么大,当图片好象比那个picturebox中的高和宽大,所以我点了裁减后,只裁减到了一小部分图片程序附上,恳请各位帮忙
点击下载
裁减代码如下:
Picture1.Cls
    Picture1.PaintPicture Picture1.Picture, 0, 0, 1830, 2280, Image1.Left + 20, Image1.Top + 20, Image1.Width - 20, Image1.Height - 20

解决方案 »

  1.   

    我是使用移动image控件选择裁减图片的
      

  2.   

    你要截图用PaintPicture是不行的,你可以用BitBlt或Picclip控件'添加 Picture1  Picture2  Command1  在Picture1中加载一张图片Option Explicit
    Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As LongPrivate Sub Form_Load()
       'Me.AutoRedraw = True
       'Me.ScaleMode = 1
       'Picture1.ScaleMode = 1
       'Picture2.ScaleMode = 1
       Picture1.AutoRedraw = True
       Picture1.AutoSize = True
       Picture2.AutoRedraw = True 'False
       Picture2.BorderStyle = 0
    End SubPrivate Sub Command1_Click()
       '************** 截图 *************** 注意 Bitblt是以像素Pixel为单位
       '抓Picture1的全图
       'BitBlt Picture2.hdc, 0, 0, Picture2.Width \ 15, Picture2.Height \ 15, Picture1.hdc, 0, 0, vbSrcCopy
       Picture2.Width = 3000: Picture2.Height = 2250
       '从Picture1的座标10,10的地方开始截取宽200高150的小图片(Pixel)
       BitBlt Picture2.hdc, 0, 0, 200, 150, Picture1.hdc, 10, 10, vbSrcCopy
       SavePicture Picture2.Image, "c:\test.bmp"
    End Sub