Page 1 sur 1

GrabDrawingImage() bug ?

Publié : jeu. 11/juin/2015 20:10
par blendman
salut

chez moi, j'ai une ima avec ce code (sur la ligne saveimage(), ou alors une iamge toute noire (en opengl), ou des fois une image toute déformée, mais jamais le bon résultat.
En gros, je dessine sur le screen et je voudrais faire un screenshot du screen.
C'est un bug ?

Code : Tout sélectionner

; 5.30LTS
; date : 11/06/2015

#Window_main = 0
If InitSprite() : EndIf

flag = #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered|#PB_Window_MaximizeGadget|#PB_Window_SizeGadget
CanvasW = 600
CanvasH = 400
If OpenWindow(#Window_main,0,0,600,400, "Screenshot", Flag)
  If OpenWindowedScreen(WindowID(0), 0,0,CanvasW,CanvasH)
  EndIf
  ShowCursor_(1)
EndIf

#Img_saveImage = 0
UsePNGImageDecoder()
UsePNGImageEncoder()
If IsImage(#Img_saveImage) = 0
  CreateImage(#Img_saveImage, CanvasW,CanvasH,32,#PB_Image_Transparent)
EndIf

ClearScreen(RGB(120,120,120))
If StartDrawing(ScreenOutput())  
  Circle(50,50,50,#Red)
  Circle(100,50,50,#Green)  
  StopDrawing()
EndIf
FlipBuffers()

If StartDrawing(ScreenOutput())
  DrawingMode(#PB_2DDrawing_Default)
  GrabDrawingImage(#Img_saveImage,0,0,CanvasW,CanvasH)
  StopDrawing()
EndIf

savefile$ = "testok.png"
If SaveImage(#Img_saveImage,savefile$,#PB_ImagePlugin_PNG)=0
  MessageRequester("error","unable to save the part of the image screen !"+savefile$)
EndIf: 

Il y a une autre façon de faire un screenshot du screen ?
Merci.