Classe pour les captures d'écran (Winapi, DirectDraw, DirectX)
CynicRus
Messages postés2Date d'inscriptionjeudi 29 janvier 2009StatutMembreDernière intervention12 avril 2014
-
12 avril 2014 à 13:07
korgis
Messages postés420Date d'inscriptionsamedi 17 mai 2003StatutMembreDernière intervention 6 mai 2019
-
18 mai 2014 à 23:54
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
korgis
Messages postés420Date d'inscriptionsamedi 17 mai 2003StatutMembreDernière intervention 6 mai 201917 18 mai 2014 à 23:54
Salut,
Mais pourquoi passer par un TPicture ?
Quoique... pourquoi pas après tout.
Une autre solution étant de passer le TBitmap en variable dans une procedure.
Quoi qu'il en soit, attention à bien libérer le TPicture puisqu'il est créé dans la fonction.
Whismeril
Messages postés19028Date d'inscriptionmardi 11 mars 2003StatutNon membreDernière intervention24 avril 2024656 4 mai 2014 à 17:19
Bonjour, je me suis permis d'éditer ton message, pour préciser à la coloration syntaxique qu'il s'agit de delphi. En effet avec la balise de code par défaut, le site choisi ce qu'il veut et le résultat n'est pas toujours au mieux.
Tu peux préciser le langage en cliquant sur la flèche descendante à droite de <>.
Quelle usine à gaz pour une simple capture d'écran !!!
Pour ma part je me contente de cette fonction :
function CopierEcran(xe, ye, we, he: integer): tBitMap;
// Renvoie le BitMap d'une capture d'écran en xe,ye large de we et haute de he
// xe,ye = coordonnées-écran (ClientToScreen) de l'angle-supérieur-gauche de la capture
var HandleDC: HDC; Picture: TPicture;
begin
HandleDC := GetDC(GetDesktopWindow);
Picture := TPicture.Create;
try
Picture.Bitmap.PixelFormat := pf32bit;
Picture.Bitmap.Width := we;
Picture.Bitmap.Height := he;
BitBlt(Picture.Bitmap.Canvas.Handle, 0, 0, we, he,
HandleDC, xe, ye, SrcCopy); //recopie l'image de la région d'écran dans PictureBureau
finally
Result := tBitMap.create;
Result.Assign(Picture.BitMap);
ReleaseDC(GetDesktopWindow, HandleDC);
end;
end; // CopierEcran
18 mai 2014 à 23:54
Mais pourquoi passer par un TPicture ?
Quoique... pourquoi pas après tout.
Une autre solution étant de passer le TBitmap en variable dans une procedure.
Quoi qu'il en soit, attention à bien libérer le TPicture puisqu'il est créé dans la fonction.
4 mai 2014 à 17:19
Tu peux préciser le langage en cliquant sur la flèche descendante à droite de <>.
Modifié par Whismeril le 4/05/2014 à 17:15
Quelle usine à gaz pour une simple capture d'écran !!!
Pour ma part je me contente de cette fonction :
A+.