cs_mabrouklepoux
Messages postés84Date d'inscriptionlundi 6 novembre 2000StatutMembreDernière intervention25 juillet 2008
-
19 déc. 2007 à 16:56
cs_mabrouklepoux
Messages postés84Date d'inscriptionlundi 6 novembre 2000StatutMembreDernière intervention25 juillet 2008
-
20 déc. 2007 à 22:11
Bonjour,
voila, je fais a un moment une copie écran dans un picturebox invisible
mon souci est que quand je fais un getpixel sur ce picture box, il me renvoi que du blanc, alors que si je le met en visible, il me renvoi bien les bonnes couleurs ...
quoi faire ???
recup hdc :
init projet :
hdc = GetDC(Cuore.PictureBox1.Handle)
appelé par un timer
[...]
Cuore.PictureBox1.Visible = True
Cuore.Refresh()
RGBPx = GetPixel(hdc, X, Y)
Cuore.PictureBox1.Visible = False
Cuore.Refresh()
pixel.red = &HFF And RGBPx
pixel.green = (&HFF00 And RGBPx) \ 256
pixel.blue = (&HFF0000 And RGBPx) \ 65536
si je mets pas les visible ca marche pas, si je les mets, ca marche, mais ca fait un peu vomir de regarder le truc tourner ...
merci d'avoir lu
si si j'insiste
mais là vous pouvez arreter, j'ai fini
il faut me laisser, j'ai du travail.
faut répondre maintenant.
vous me genez ...
tout va si vite entre nous !
fsltp
Messages postés94Date d'inscriptionlundi 26 novembre 2007StatutMembreDernière intervention16 janvier 2008 19 déc. 2007 à 21:02
Bonsoir,
peut etre un truc a essayer qui n'est pas forcement tres logique mais bon...
laisse le picturebox visible mais lui mettre de coordonnées hors ecran*
du genre
Picture1.Top = -15000
Picture1.Left = -15000
ca peut contourné ton pb
qui sait
nour redire...
a+
cs_mabrouklepoux
Messages postés84Date d'inscriptionlundi 6 novembre 2000StatutMembreDernière intervention25 juillet 20081 20 déc. 2007 à 10:28
bon, j'ai faillit mourru, mais j'ai survécu
kevin, tu avais raison, c le plus simple, mmeme si l'idée de le foutre hors écran devrait aussi marcher (c un peu illogique, donc VB devrait aimer )
j'ai pr&éféré taper direct dans l'image renvoyée par le printscreen.
j'ai juste perdu des heures à chercher un moyen de lire un pixel d'un type image, et rien trouvé
il suffit en fait de prendre le type bitmap, et non image ... qu'on m'explique pourquoi image on peut pas ...
pour historique, le code qui amrche :
récupérer l'écran:
System.Windows.Forms.SendKeys.SendWait("^{PRTSC}")
CurScreen = CType(System.Windows.Forms.Clipboard.GetDataObject.GetData(System.Windows.Forms.DataFormats.Bitmap), Bitmap)
Cuore.PictureBox1.Image = CurScreen 'juste pour que je vois mon image
Kevin.Ory
Messages postés840Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention 7 janvier 200911 20 déc. 2007 à 18:23
Harf ouais bien sur, c'est la clase Bitmap et non Image qu'il faut utiliser...
J'ai tapé ca vite fait, je t'aurais fais gagner une heure si j'avais fais un peu attention, dsl
Sinon, pour capturer l'écran, tu peux aussi utiliser la fonction CopyFromScreen de Graphics:
http://msdn2.microsoft.com/en-us/library/system.drawing.graphics.copyfromscreen.aspx Mais t'es obligé de passer par un Graphics, donc dans ton cas je pense que ta méthode est plus simple.. mais si jamais tu utlise de toute facon un Graphics pour modifier ton image, penses-y
Sinon, pour l'histroie de Image vs Bitmap, la classe abstraite Image n'est pas forcément une image composée de pixels. C'est à dire que Image sert aussi de base pour la classe System.Drawing.Imaging.Metafile, qui est une image composé.. il est donc normal que Get et SetPixel soient implémenté dans la classe spécifique à une image composé de pixels: Bitmap