Screenshot maken van een panel

Status
Niet open voor verdere reacties.

jordidroj

Gebruiker
Lid geworden
29 okt 2009
Berichten
100
Hallo,

Is het mogelijk om een screenshot van een panel te maken? Dus niet full screen.

Gr. Jordi

Edit:
Ik zal wel wat meer info geven want volgensmij is het niet zo duidelijk :p

Ik heb dus een form en in die form heb ik een Panel. Het is te bedoeling dat ik een screenshot van die panel kan opslaan als .jpg.
Maar als ik op internet zoek kom ik alleenmaar te weten hoe ik een screenshot van full screen kan maken. Ik kan natuurlijk ook met cordinaten gaan werken maar de cordinaten van het venstertje waar de Panel in zit zijn natuurlijk altijd anders. Dus daar heb ik ook niets aan..

Gr. Jordi
 
Laatst bewerkt:
@jordidroj Je vraagstelling is van dienaard dat de helpers niet zullen staan te trappelen om je te helpen. Je aanhef begint al met "Heey" en je verdere info is ook niet echt uitgebreid.
 
Sorry,

Ik zal wat meer info geven:

Ik heb dus een form en in die form heb ik een Panel. Het is te bedoeling dat ik een screenshot van die panel kan opslaan als .jpg.
Maar als ik op internet zoek kom ik alleenmaar te weten hoe ik een screenshot van full screen kan maken. Ik kan natuurlijk ook met cordinaten gaan werken maar de cordinaten van het venstertje waar de Panel in zit zijn natuurlijk altijd anders. Dus daar heb ik ook niets aan..

Gr. Jordi
 
:thumb: dat lijkt er meer op
 
Code:
        Dim screenSize As Size = New Size(Panel1.Width, Panel1.Height)
        Dim screenGrab As New Bitmap(Panel1.Width, Panel1.Height)
        Dim g As Graphics = Graphics.FromImage(screenGrab)
        g.CopyFromScreen(New Point(0, 0), New Point(0, 0), screenSize)

        screenGrab.Save("C:\Screenshot van Panel1.jpg", ImageFormat.Jpeg)

        screenGrab.Dispose()

Niet getest, maar het zou moeten werken. Resultaat is een jpg screenshot in C:\.
 
Ik heb het net uitgetest en hij neemt alleen het linker, bovendste gedeeldte van het scherm.. :(

Is dit op te lossen?
 
Ik zat moeilijk te doen, probeer het met deze code:

Dim Screenshot As Bitmap = Panel1.BackgroundImage
Screenshot.Save("C:\Screenshot van Panel1" & ".jpg", ImageFormat.Jpeg)


Ook even System.Drawing.Imaging importen.
 
Hij werkt nog steeds niet :(

Hij geeft een error.. En uit jouwn code kan ik opmaken dat als hij het zou doen dat dan alleen de background gesaved zou worden en niet panel1 met al zijn andere dingen.
 
In Panel1 heb ik heb 10 group boxes. In die groupboxes heb ik als background een image en in elke groupbox heb ik weer 10 kleine images.
 
In Panel1 heb ik heb 10 group boxes. In die groupboxes heb ik als background een image en in elke groupbox heb ik weer 10 kleine images.

Ja nee, dat gaat zo niet werken, ik dacht dat je gewoon een image in je panel had staan. Je kan geen controls "capturen" op die manier.

Dan houd het op voor mij.
 
En is er niet een code die de globale cordinaten van het scherm op vraagt? Panel1 staat in verhouding met de form bijvoorbeeld op (80, 80). Maar in verhouding met het hele scherm staat hij misschien op (500, 500). Is er dan niet zo iets als New Point (global.x, global.y) ofzo?

Ik bedoel dat je dan dit hebt:
Code:
        Dim screenSize As Size = New Size(Panel1.Width, Panel1.Height)
        Dim screenGrab As New Bitmap(Panel1.Width, Panel1.Height)
        Dim g As Graphics = Graphics.FromImage(screenGrab)
        g.CopyFromScreen[B](New Point(global-x, global-y), New Point(global-x, global-y)[/B], screenSize)

        screenGrab.Save("C:\Screenshot van Panel1.jpg", ImageFormat.Jpeg)

        screenGrab.Dispose()
 
Ik heb al een code gevonden waarbij je dit gemakkelijk kan doen zonder een .dll te importeren of een module aan te maken.

Gr. Jordi
 
Vooruit dan :p

Dit is de code:

Code:
Dim bbit As New Bitmap(Panel1.Width, Panel1.Height)
        Dim gg As Graphics = Graphics.FromImage(bbit)
        Dim p As New Point(PointToScreen(Panel1.Location))
        gg.CopyFromScreen(p, New Point(2, 6), Panel1.Size)
        Gua2.SizeMode = PictureBoxSizeMode.Zoom
        Gua2.Image = bbit

        bbit.Save(SaveFileDialog1.FileName)

Met bbit kan je nu doen wat je wilt :)
In mijn geval save ik hem :D

PS: Zou je pleaase willen reageren op mijn andere topic? "Picture cordinaten veranderen "
Of weet jij dat ook niet? Want ik heb op internet gezocht en ik heb niets gevonden. Ik zou al blij zijn als het uberhaupt mogelijk is :p
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan