SaveScreen

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
kelly
Messages : 176
Inscription : jeu. 09/sept./2004 16:15

SaveScreen

Message par kelly »

je travaille sur un OpenScreen(1024,768,32,"")
Et je n'arrive pas a sauver l'image present a l'ecran !!
Ca me dit tt le temps "image objets not initialised"
je vais mourir... :mad:
scaraber
Messages : 362
Inscription : ven. 15/juil./2005 17:32

Message par scaraber »

tu doit metre un initsprite ou un autre init je pence
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

tu t'y prends comment pour enregistrer ?

Dri
kelly
Messages : 176
Inscription : jeu. 09/sept./2004 16:15

Message par kelly »

Bin, j'ai trouvé un dérivé mais ce n'est pas la procedure ideale. Je grab l'ecran en sprite et je save le sprite.
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

ca marche maintenant ?
sinon met du code et je pourrais jeter un coup d'oeil...

"ca marche pas" ca m'aide pas lol

Dri ;)
lionel_om
Messages : 1500
Inscription : jeu. 25/mars/2004 11:23
Localisation : Sophia Antipolis (Nice)
Contact :

Message par lionel_om »

QQ1 avait déja posé la question (je sais plus si c t moi :lol: ).
En tout cas j'ai gardé sur mon DD les réponses :

Code : Tout sélectionner

  repeat 
  ... 
  clearscreen(...) 
  ... 
  displaysprite(...) 
  ... 
  flipbuffers(...) 
  
  if keyboardreleased(#PB_Key_S) 
    snap + 1 
    snapid = grabsprite(#pb_any, 0, 0, ..., ...) 
    savesprite(snapid, "snap_"+str(snap)+".bmp") 
    freesprite(snapid) 
  endif  
  ... 
  until ...
ce code pertmet de rajouter de la transparence (je crois)

Code : Tout sélectionner

; Auteur : Le Soldat Inconnu 
; Version de PB : 3.9 
; 
; Explication du programme : 
; Faire une copie d'écran 

#CAPTUREBLT = $40000000 

Procedure SetWinTransparency(WinHandle.l, Transparency_Level.l) 
  If OpenLibrary(0, "user32.dll") 
    CallFunction(0, "SetLayeredWindowAttributes", WinHandle, 0, Transparency_Level, 2) 
    CloseLibrary(0) 
  EndIf 
EndProcedure 

If OpenWindow(0, 0, 0, 300, 300, #PB_Window_ScreenCentered | #PB_Window_SystemMenu, "Plein écran") 
  SetWindowLong_(WindowID(), #GWL_EXSTYLE, GetWindowLong_(WindowID(), #GWL_EXSTYLE) | $00080000) ; #WS_EX_LAYERED = $00080000 
  SetWinTransparency (WindowID(), 180) 
  ; Pour changer le niveau de transparence de la fenêtre 
  ; Le niveau de transparence doit être compris entre 1 (transparence totale) et 255 (opaque) 
  
  Repeat 
    Event = WaitWindowEvent() 
  Until Event = #WM_CLOSE 
  
EndIf 

Ecran_Largeur = GetSystemMetrics_(#SM_CXSCREEN) 
Ecran_Hauteur = GetSystemMetrics_(#SM_CYSCREEN) 

DC = GetDC_(0) 
CreateImage(0, Ecran_Largeur, Ecran_Hauteur) 
Dessin = StartDrawing(ImageOutput()) 
BitBlt_(Dessin, 0, 0, Ecran_Largeur, Ecran_Hauteur, DC, 0, 0, #SRCPAINT|#CAPTUREBLT) 
StopDrawing() 
ReleaseDC_(0, DC) 

SaveImage(0, "Copie d'écran.bmp") 

Delay(2000)
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Répondre