Bonjour,
Je m'essaie aux sprites, et j'aimerais pouvoir enregistrer ce qui se passe, soit sous forme d'images isolées, soit dans un MP4 (ou autre) mais je n'arrive pas à trouver comment faire.
Quelqu'un pourrait-il m'aider ?
Merci d'avance.
[RÉSOLU] Enregistrer écran
[RÉSOLU] Enregistrer écran
Dernière modification par Stan_fr le mer. 27/mai/2026 21:28, modifié 1 fois.
Re: Enregistrer écran
Résolu : il suffit de créer un sprite de la taille de l'écran en faisant un grabSprite, puis de le sauver !
Re: Enregistrer écran
ça c'est fait 
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: Enregistrer écran
Oui ; toutes mes excuses, j'aurais du préciser que j'ai trouvé la solution grâce à toi !!
Par contre, j'ai encore un pb : comment utiliser le debugger, quand on a un écran couvrant l'intégralité de l'écran physique :
J'ai un second écran configuré en extension du bureau du premier (sous win10), mais je ne vois pas comment y faire afficher une fenêtre de débug ?
Par contre, j'ai encore un pb : comment utiliser le debugger, quand on a un écran couvrant l'intégralité de l'écran physique :
J'ai un second écran configuré en extension du bureau du premier (sous win10), mais je ne vois pas comment y faire afficher une fenêtre de débug ?
Re: Enregistrer écran
Ah bon ?Oui ; toutes mes excuses, j'aurais du préciser que j'ai trouvé la solution grâce à toi !!
Lance un code d'openwindow classic et ton debug s'ouvrira. Tu le glisses sur le second ecran.
Le debug s'ouvre normalement au dernier endroit ou il a été placé.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: Enregistrer écran
OuepAr-S a écrit : ven. 22/mai/2026 12:07 Le debug s'ouvre normalement au dernier endroit ou il a été placé.
Stan_fr lance un autre code qui appel le débug et déplace la fenêtre sur ton second écran. A partir de là il s'ouvrira sur le second écran
@++
Windows 10 x64, PureBasic 6.30 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Re: Enregistrer écran
Merci !
Mais ça ne permet pas de comprendre pourquoi mon pgm, affiche ce à quoi je veux arriver, et par contre quand j'enregistre les images ça ne va pas ?
Une idée
Mais ça ne permet pas de comprendre pourquoi mon pgm, affiche ce à quoi je veux arriver, et par contre quand j'enregistre les images ça ne va pas ?
Code : Tout sélectionner
; PGM Censé afficher des sprites qui tournent et enregistrer les images dans des fichiers
; situés à la racine du disque défini dans la variable DISC$, l'affichage ça va, mais les
; fichiers enregistrés sont bizarres....
UsePNGImageEncoder()
;{ CONSTANTES
#BDLA = 2 ; Largeur de bordure
#CARRE = 0 ; 0 : sprites carrés, 1 sprites rectangulaires
#COTS = 120 ; METTRE ICI LE PGCD DE LAREC et HAUREC
#HAUREC = 1080 ; Hauteur écran
#LAREC = 1920 ; Largeur écran
#NBSPRI = 100 ; Nombre max de sprites
#ECRAN = 500 ; Sprite contenant l'écran
;}
;{ STRUCTURES
Structure msp ; Sprite carré
cot.i ; Côté du sprite
mode.i ; Option se dessin du sprite
num.i ; Numéro du sprite
X.f ; X du sprite
Y.f ; Y du sprite
EndStructure
;}
;{ VARIABLES
DISC$ = "E:\"
lcot.i = #COTS
n1.i = Int(#LAREC / #COTS)
n2.i = Int(#HAUREC / #COTS)
DecaY.i = Int ((#HAUREC - n2*#COTS)/2)
DecaX.i = n3
;}
;{ création du contexte
; Ouverture fenêtre
If OpenWindow(0,0,0,#LAREC,#HAUREC,"wwwww",#PB_Window_BorderLess)= 0
End
EndIf
;Initialisation des sprites, du clavier et de la souris
If InitSprite() = 0 Or InitKeyboard() = 0 Or InitMouse() = 0
MessageRequester("Erreur", "Impossible d'initialiser l'écran.")
CloseWindow(#PB_All)
End
EndIf
;Ouverture de l'écran
If OpenScreen(#LAREC,#HAUREC,32,"Exemple OpenScreen",PB_Screen_WaitSynchronization) = 0
MessageRequester("Erreur", "Impossible d'ouvrir l'écran.")
CloseScreen()
CloseWindow(#PB_All)
End
EndIf
;}
;{ création des sprites
nb_sp = n1*n2
Dim s_p.msp(nb_sp+1)
Num_ecran = nb_sp+1
CreateSprite( Num_ecran, #LAREC, #HAUREC, #PB_Sprite_AlphaBlending ) ; Fond d'écran
For i = 0 To nb_sp ; Petits sprites
If CreateSprite(i, #COTS, #COTS, #PB_Sprite_AlphaBlending ) ; Resultat = CreateSprite(i, #COTS, #COTS, #PB_Sprite_AlphaBlending )
s_p(i)\num = i
s_p(i)\cot = #COTS
s_p(i)\mode = #PB_Sprite_AlphaBlending
Else
MessageRequester("Erreur", "Création sprites")
CloseScreen()
CloseWindow(#PB_All)
End
EndIf
Next ; i = 0 To nb_sp
;}
;{ Init des spritesA$
ClearScreen(RGB(255, 0, 0)) ; fond uni rouge
;FlipBuffers()
For j = 0 To nb_sp ; - 1
StartDrawing(SpriteOutput(s_p(j)\num))
If j%2
Box(0,0, #COTS, #COTS, RGBA(255,0,0,0))
Ellipse(#COTS/2,#COTS/2, (#COTS-38)/2, #COTS/4, RGBA(0, 0, 255, 255)) ; ellipse bleue
Else
Box(0,0, #COTS, #COTS, RGBA(255,0,0,0))
Ellipse(#COTS/2,#COTS/2, (#COTS-38)/2, #COTS/4, RGBA(0, 255, 0, 255)); Ellipse verte
EndIf
StopDrawing()
Next ; j = 0 To nb_sp - 1
;}
FlipBuffers()
ClearScreen(RGB(255, 0, 0)) ; Un rouge fond uni
FlipBuffers()
GrabSprite(Num_ecran, 0, 0, #LAREC, #HAUREC)
A$ = DISC$ + "FOND_ECRAN.bmp"
SaveSprite(Num_ecran, A$, #PB_ImagePlugin_BMP)
nump_spri = 0
;{ Affichage des sprites
For kk = 0 To 360 Step 36
ClearScreen(RGB(255, 0, 0)) ; fond uni rouge
For j = 0 To nb_sp
RotateSprite(s_p(j)\num, kk, #PB_Absolute) ;
Next ; j = 0 To nb_sp
For j = 0 To nb_sp ;- 1
k = j % n1
l = j / n1
s_p(j)\X = k * #COTS ; + 10
s_p(j)\Y = l * #COTS ; + DecaY
DisplaySprite(j, s_p(j)\X,s_p(j)\Y)
If j = nb_sp-1
GrabSprite(#ECRAN, 0, 0, #LAREC, #HAUREC)
A$ = DISC$ + "ecran"+ Str(nump_spri) + ".png"
SaveSprite(#ECRAN, A$, #PB_ImagePlugin_PNG)
nump_spri + 1
EndIf
k = j % n1
l = j / n1
Next ; j = 0 To nb_sp
FlipBuffers()
Next ; kk = 0 To 360
;}
Repeat
ExamineKeyboard()
Until KeyboardPushed(#PB_Key_Escape) ; On quitte l'application en appuyant sur la touche Echap (ESC)
End
Une idée