Hi,
I have code that will save the canvas as a jpeg as it is displyed on the screen which works just fine. I have now created a different screen that contains multiple panels (with its own canvas) and other canvases as well. How do I capture all the canvases to save as a jpeg or perform a screen shot? If it is the screenshot then can it be limited to a specific portion of the screen ( e.g. not capturing the user buttons at the bottom)? Thanks in advance
Hi,
I have code that will save the canvas as a jpeg as it is displyed on the screen which works just fine. I have now created a different screen that contains multiple panels (with its own canvas) and other canvases as well. How do I capture all the canvases to save as a jpeg or perform a screen shot? If it is the screenshot then can it be limited to a specific portion of the screen ( e.g. not capturing the user buttons at the bottom)? Thanks in advance
Thank you for the link. I used the code in the link modified to enable a custom file name to be added vis a dialog box and added the Path code below to create the path and the c.ClipPath line to limit the area of the screen shot.
B4X:
Dim jpegPath As Path
jpegPath.Initialize(5%x,5%y)
jpegPath.LineTo(95%x,5%y)
jpegPath.LineTo(95%x,95%y)
jpegPath.LineTo(5%x,95%y)
jpegPath.LineTo(5%x,5%y)
Dim Obj1, Obj2 As Reflector
Dim bmp As Bitmap
Dim c As Canvas
'Dim now, i As Long
Obj1.Target = Obj1.GetActivityBA
Obj1.Target = Obj1.GetField("vg")
bmp.InitializeMutable(Activity.Width, Activity.Height)
c.Initialize2(bmp)
c.ClipPath(jpegPath) 'limits the canvas to the path