Accueil > > > [IRONPYTHON] CAPTURE D'ECRAN SOUS WINDOWS.
[IRONPYTHON] CAPTURE D'ECRAN SOUS WINDOWS.
Information sur la source
Description
Voici une petite classe faites sous IronPython (pour ceux qui ne savent il s'agit d'une implémentation du langage Python dans le framework .Net de Microsoft). Ce qui permet d'utiliser .Net sous python et vice-versa. Cette classe propose des méthodes de copie d'écran à travers les fonctionnalités de .Net 2.0 -Ecran principale -Ecran virtuel -Ecran N -Aire de travail utilisateur -Nombre d'écran existant Les paramètres sur les méthodes: n = Ecran X à capturer f = Fichier de sortie de la capture ff = Format de l'image de sortie (http://msdn2.microsoft.com/fr-fr/library/system.d rawing.imaging.imageformat_members(VS.80).aspx)
Source
- import clr
-
- ##Ajout des references des assembly au clr
- clr.AddReference("System.Drawing")
- clr.AddReference("System.Windows.Forms")
-
- ##Import assembly
- from System.Drawing import *
- from System.Windows.Forms import *
-
- ##Classe proposant des methodes de capture ecran
- class ScreenShot(object):
-
- ##Constructeur
- def __init__(self):print "Init"
-
- ##Founit le nombre d'ecrans
- def GetNumberOfScreens(self):
- return Screen.AllScreens.Length
-
- ##Effectue une capture d'ecran de l'ecran principal
- def CapturePrimaryScreen(self,f,ff):
- ##Creer un objet Rectangle aux dimensions de l'ecran
- rect=Screen.PrimaryScreen.Bounds
- ##Creer un objet Bitmap
- bmp=Bitmap(rect.Width,rect.Height,Imaging.PixelFormat.Format32bppArgb)
- ##Creer un objet Graphic de notre objet Bitmap bmp
- g=Graphics.FromImage(bmp)
- ##Transfert le bloc des donnees des couleurs de l'ecran sur l'objet bmp
- g.CopyFromScreen(rect.Left,rect.Top,0,0,rect.Size,CopyPixelOperation.SourceCopy)
- ##Sauvegarde sur le disque notre objet bmp
- bmp.Save(f,ff)
- ##Libere les ressources utilisees
- bmp.Dispose()
- g.Dispose()
-
- return None
-
- ##Effectue une capture de l'ecran virtuel (tout ecran confondue)
- def CaptureVirtualScreen(self,f,ff):
-
- rect=SystemInformation.VirtualScreen
-
- bmp=Bitmap(rect.Width,rect.Height,Imaging.PixelFormat.Format32bppArgb)
-
- g=Graphics.FromImage(bmp)
- g.CopyFromScreen(rect.Left,rect.Top,0,0,rect.Size,CopyPixelOperation.SourceCopy)
-
- bmp.Save(f,ff)
-
- bmp.Dispose()
- g.Dispose()
-
- return None
-
- ##Effectue une capture d'un ecran particulien
- def CaptureFullScreen(self,n,f,ff):
-
- if(self.GetNumberOfScreens()>=n+1):
-
- scr=Screen.AllScreens[n]
- rect=scr.Bounds
-
- bmp=Bitmap(rect.Width,rect.Height,Imaging.PixelFormat.Format32bppArgb)
-
- g=Graphics.FromImage(bmp)
- g.CopyFromScreen(rect.Left,rect.Top,0,0,rect.Size,CopyPixelOperation.SourceCopy)
-
- bmp.Save(f,ff)
-
- bmp.Dispose()
- g.Dispose()
-
- else:
- return "Numero d'ecran incorrect"
-
- return None
-
- ##Effectue une capture de la zone de travail utilisateur
- def CaptureWorkingArea(self,f,ff):
-
- rect=Screen.PrimaryScreen.WorkingArea
-
- bmp=Bitmap(rect.Width,rect.Height,Imaging.PixelFormat.Format32bppArgb)
-
- g=Graphics.FromImage(bmp)
- g.CopyFromScreen(rect.Left,rect.Top,0,0,rect.Size,CopyPixelOperation.SourceCopy)
-
- bmp.Save(f,ff)
-
- bmp.Dispose()
- g.Dispose()
-
- return None
import clr
##Ajout des references des assembly au clr
clr.AddReference("System.Drawing")
clr.AddReference("System.Windows.Forms")
##Import assembly
from System.Drawing import *
from System.Windows.Forms import *
##Classe proposant des methodes de capture ecran
class ScreenShot(object):
##Constructeur
def __init__(self):print "Init"
##Founit le nombre d'ecrans
def GetNumberOfScreens(self):
return Screen.AllScreens.Length
##Effectue une capture d'ecran de l'ecran principal
def CapturePrimaryScreen(self,f,ff):
##Creer un objet Rectangle aux dimensions de l'ecran
rect=Screen.PrimaryScreen.Bounds
##Creer un objet Bitmap
bmp=Bitmap(rect.Width,rect.Height,Imaging.PixelFormat.Format32bppArgb)
##Creer un objet Graphic de notre objet Bitmap bmp
g=Graphics.FromImage(bmp)
##Transfert le bloc des donnees des couleurs de l'ecran sur l'objet bmp
g.CopyFromScreen(rect.Left,rect.Top,0,0,rect.Size,CopyPixelOperation.SourceCopy)
##Sauvegarde sur le disque notre objet bmp
bmp.Save(f,ff)
##Libere les ressources utilisees
bmp.Dispose()
g.Dispose()
return None
##Effectue une capture de l'ecran virtuel (tout ecran confondue)
def CaptureVirtualScreen(self,f,ff):
rect=SystemInformation.VirtualScreen
bmp=Bitmap(rect.Width,rect.Height,Imaging.PixelFormat.Format32bppArgb)
g=Graphics.FromImage(bmp)
g.CopyFromScreen(rect.Left,rect.Top,0,0,rect.Size,CopyPixelOperation.SourceCopy)
bmp.Save(f,ff)
bmp.Dispose()
g.Dispose()
return None
##Effectue une capture d'un ecran particulien
def CaptureFullScreen(self,n,f,ff):
if(self.GetNumberOfScreens()>=n+1):
scr=Screen.AllScreens[n]
rect=scr.Bounds
bmp=Bitmap(rect.Width,rect.Height,Imaging.PixelFormat.Format32bppArgb)
g=Graphics.FromImage(bmp)
g.CopyFromScreen(rect.Left,rect.Top,0,0,rect.Size,CopyPixelOperation.SourceCopy)
bmp.Save(f,ff)
bmp.Dispose()
g.Dispose()
else:
return "Numero d'ecran incorrect"
return None
##Effectue une capture de la zone de travail utilisateur
def CaptureWorkingArea(self,f,ff):
rect=Screen.PrimaryScreen.WorkingArea
bmp=Bitmap(rect.Width,rect.Height,Imaging.PixelFormat.Format32bppArgb)
g=Graphics.FromImage(bmp)
g.CopyFromScreen(rect.Left,rect.Top,0,0,rect.Size,CopyPixelOperation.SourceCopy)
bmp.Save(f,ff)
bmp.Dispose()
g.Dispose()
return None
Conclusion
Demo sous IronPython (ipy.exe) Copier le fichier IronScreenshot.py à la racine du dossier ou vous avez IronPython
-------------------------------------- ----
import clr clr.AddReference("System.Drawing")
from System.Drawing import *
import IronScreenshot from IronScreenshot import *
MyClass=ScreenShot()
MyClass.CapturePrimaryScr een("C:\\Primaire.bmp",Imaging.ImageFormat.Bmp)
M yClass.CaptureVirtualScreen("C:\\Virtuel.png",Imag ing.ImageFormat.Png)
MyClass.CaptureWorkingArea(" C:\\AireUtilisateur.gif",Imaging.ImageFormat.Gif) MyClass.CaptureFullScreen(0,"C:\\Ecran1.jpg",Imag ing.ImageFormat.Jpeg)
MyClass.CaptureFullScreen(1 ,"C:\\Ecran2.tiff",Imaging.ImageFormat.Tiff)
--- --------------------------------- (voir capture écran)
Bon dév à tous ;)
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
(aux admins) - IronPython [ par ReDHaMMeRz ]
Je poste ce message dans le but de voir apparaitre une nouvelle categorie de codes Python : " IronPython " ou " .NET " :Petit rappel : IronPytho
Capture d'écran en python [ par vychnou ]
Bonjour à tous,je suis confronté à un problème: Comment capturer l'écran en python?Apparement, il n'existe pas de solution toute faite. Si quelqu'un e
Capture vidéo [ par aera group ]
Bonjour,je suis en traint de travailler sur une source, et j'aurais besoin de savoir comment faire une capture d'écran VIDÉO de l'écran ? Es que quelq
ramasse miettes compactant ironpython [ par l0r3nz1 ]
Bonjour, je pose ma question sur ironpython ici de même qu'une question sur vb.net est posée sur vbfrance. j'ai hérité d'un script qui utilisait de
|
Derniers Blogs
TECHDAYS PARIS 2012 : COMMENT SHAREPOINT A SAUVé MES TECHDAYSTECHDAYS PARIS 2012 : COMMENT SHAREPOINT A SAUVé MES TECHDAYS par ROMELARD Fabrice
Speakers : Lionel Limozin et Alain Marty La session commence par une découverte de SharePoint à travers la mise en place d'un environnement SharePoint pour la gestion des Sessions animées par BeWise. Le besoin est très ba...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice PERSPECTIVE 3.0 POUR SILVERLIGHT 5.0PERSPECTIVE 3.0 POUR SILVERLIGHT 5.0 par odewit
Je viens de publier la version 3.0 de Perspective pour Silverlight, qui regroupe un portage sous Silverlight 5.0 des fonctionnalités de Perspective 2.0, le framework 3D de haut-niveau introduit récemment et de nouveaux exemples de code. En voici la li...
Cliquez pour lire la suite de l'article par odewit TECHDAYS PARIS 2012 : TOP 10 DES BEST PRACTICES POUR SQL SERVERTECHDAYS PARIS 2012 : TOP 10 DES BEST PRACTICES POUR SQL SERVER par ROMELARD Fabrice
Speaker : Nadia Ben El Kadi Configuration machine La session commence par la toute première question à se poser lors de la mise en place d'environnement SQL Server, la configuration des machines : Type de mac...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : KINECT + OFFICE 365 UN BON GESTE POUR VOTRE SITECHDAYS PARIS 2012 : KINECT + OFFICE 365 UN BON GESTE POUR VOTRE SI par ROMELARD Fabrice
Speakers : Fabrice Barbin, Samuel Blanchard, Julien Lo Presti Titre Prometteur et attractif invitant à voir comment lier le composant ludique Kinect dans le cadre d'une structure IT classique, notamment au travers de la plat...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : PLEINIèRE DU PREMIER JOURTECHDAYS PARIS 2012 : PLEINIèRE DU PREMIER JOUR par ROMELARD Fabrice
KeyNotes du premier jour pour les développeurs. La session est principalement axée sur une des principales directions prise par Microsoft à travers tous ses nouveaux produits : Cloud privé ou public (Solution Azure) ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
PYVISA PROBLèMEPYVISA PROBLèME par sandrine44
Cliquez pour lire la suite par sandrine44
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|