截图代码,没有用到API
vb.net吧
全部回复
仅看楼主
level 11
Dim dSize As Size = Windows.Forms.SystemInformation.PrimaryMonitorSize
Dim dHeight = dSize.Height, dWidth = dSize.Width
Dim MemoryImage As New Bitmap(dHeight, dWidth)
Dim MemoryGraphics As Graphics = Graphics.FromHwnd(Me.Handle.ToInt32)
MemoryGraphics.CopyFromScreen(0, 0, 0, 0, dSize)
2013年07月29日 07点07分 1
level 9
弄个大的多好,小的不全面多没意思啊
2013年07月29日 09点07分 3
有啊,第一个就是完整的(有BITMIP创建所谓的绘图板一样的东西)…但现在发现一个问题,为啥把Me改为picturebox1之类的控件就会出现错误……
2013年07月29日 23点07分
回复 极致囧 :Graphics.FromHwnd其实也就是在某个控件上初始化出一个可绘制图面
2013年07月30日 00点07分
回复 极致囧 :然后把图面赋给MemoryGraphics,等于以PictureBox1的客户端区域图面为画布。这样没错啊!我估计问题是出在不用Size上
2013年07月30日 00点07分
回复 OneStep7 :size该咋用呢?
2013年07月30日 04点07分
level 9
我仔细看了一下第一部分的代码,觉得这个PrimaryMonitorSize来历不明,然后MemoryImage并没有用上。你是想让新手自个发现这些问题吗?
2013年07月30日 02点07分 4
我就是新手……
2013年07月30日 06点07分
level 8
Dim w = Screen.PrimaryScreen.Bounds.Width
Dim h = Screen.PrimaryScreen.Bounds.Height
Dim img As New Bitmap(w, h)
Dim g As Graphics = Graphics.FromImage(img)
g.CopyFromScreen(0, 0, 0, 0, Screen.PrimaryScreen.Bounds.Size)
'这样把全屏的图像Copy到一张与屏幕大小相符的Bitmap上了,不需要用Form来承载。
2013年07月30日 04点07分 5
顶,完全正确!不过只是全屏的,在这基础上还能修改成对屏幕区域上任意矩形区的图面截取
2013年07月30日 05点07分
回复 OneStep7 :再使用Graphics将img画到另一张图上,Graphics.DrawImage可以实现切割,最后通过Bitmap.Save来保存图片。
2013年07月30日 09点07分
回复 薛振梁 :你把它说乱套了。当执行完最后一行代码时那Screen已然在img中,然后img.Save就是保存图片[哈哈]
2013年07月30日 10点07分
回复 OneStep7 :我是如果要再剪切这张图片。
2013年07月31日 05点07分
level 8
如果每秒钟需要截N帧的话用API
2013年08月07日 18点08分 6
1