VB .NET中的高DPI屏幕截图

时间:2014-11-29 14:05:40

标签: vb.net

我正在尝试创建一个可以截取Windows桌面截图的小应用程序。 现在我已经得到了非常经典的代码:

Private Function TakeScreenShot() As Bitmap

    Dim screenSize As Size = New Size(My.Computer.Screen.Bounds.Width, My.Computer.Screen.Bounds.Height)
    Dim screenGrab As New Bitmap(My.Computer.Screen.Bounds.Width, My.Computer.Screen.Bounds.Height)
    screenGrab.SetResolution(2400, 2400)
    Dim g As Graphics = Graphics.FromImage(screenGrab)
    g.CompositingQuality = CompositingQuality.HighQuality
    g.InterpolationMode = InterpolationMode.HighQualityBicubic
    g.SmoothingMode = SmoothingMode.HighQuality
    g.CopyFromScreen(New Point(0, 0), New Point(0, 0), screenSize)

    Return screenGrab

End Function

但我希望有一个非常好的质量截图。我不知道是否可能,所以我问,但是我可以通过修改DPI(就像我做的那样)或者通过增加位图的初始大小来获得更高分辨率的屏幕截图吗?我根本不知道,所以我问......

提前谢谢

1 个答案:

答案 0 :(得分:3)

你做不到。像素就像是计算机图形的原子。

你不能深入。

(是的,我知道我们实际上可以在现实世界或莱昂纳多迪卡普里奥的一些好莱坞电影中,但我们只是说原子是最小的单位。这不是物理交换,因为我没有那里有一个帐户; S)。