Ik ben in VB.Net een remote desktop applicatie aan het maken.
Dit werkt inmiddels allemaal prima, alleen zat ik me te verwonderen over het feit dat het ruim 200 ms duurt om een screenshot te nemen. In de praktijk limiteert dit me tot ~ 3-4 beelden per seconden, omdat er ook nog tijd bijkomt om ze te versturen.
Nu vroeg ik me af of er tweakers zijn die efficientere methodes kennen om screenshots te maken.
Dit is mijn code voor de screenshots op dit moment.
Behalve deze methode heb ik 't ook dmv APIs geprobeert, dit leverde ongeveer dezelfde vertraging op. (soms 10 ms minder, maar soms ook 10 ms meer)
Alvast bedankt voor de moeite!
PS. Ik weet niet helemaal zeker of ik dit in het goede forum heb geplaatst. in het 'waar hoort je topic thuis' topic, staat dat je voor (niet efficiente) algoritmen bij Software Engineering en Architecture moet zijn, maar bij SE & A staat weer dat echte code hier thuishoort.
Dit werkt inmiddels allemaal prima, alleen zat ik me te verwonderen over het feit dat het ruim 200 ms duurt om een screenshot te nemen. In de praktijk limiteert dit me tot ~ 3-4 beelden per seconden, omdat er ook nog tijd bijkomt om ze te versturen.
Nu vroeg ik me af of er tweakers zijn die efficientere methodes kennen om screenshots te maken.
Dit is mijn code voor de screenshots op dit moment.
Visual Basic .NET: GetSS.vb
1
2
3
4
5
6
7
8
9
10
11
12
13
| Dim gfxScreenshot As Graphics Dim bmpScreenshot As Bitmap Dim rtrnByte() As Byte bmpScreenshot = New Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, PixelFormat.Format16bppRgb555) gfxScreenshot = Graphics.FromImage(bmpScreenshot) gfxScreenshot.CopyFromScreen(Screen.PrimaryScreen.Bounds.X, Screen.PrimaryScreen.Bounds.Y, 0, 0, Screen.PrimaryScreen.Bounds.Size, CopyPixelOperation.SourceCopy) Using stream As New System.IO.MemoryStream bmpScreenshot.Save(stream, ImageFormat.Jpeg) rtrnByte = stream.ToArray End Using Return rtrnByte |
Behalve deze methode heb ik 't ook dmv APIs geprobeert, dit leverde ongeveer dezelfde vertraging op. (soms 10 ms minder, maar soms ook 10 ms meer)
Alvast bedankt voor de moeite!
PS. Ik weet niet helemaal zeker of ik dit in het goede forum heb geplaatst. in het 'waar hoort je topic thuis' topic, staat dat je voor (niet efficiente) algoritmen bij Software Engineering en Architecture moet zijn, maar bij SE & A staat weer dat echte code hier thuishoort.