Un code qui fonctionne en vb.net avec GETDIBITS [Résolu]

cdelory 39 Messages postés mercredi 7 mars 2012Date d'inscription 26 septembre 2012 Dernière intervention - 22 août 2012 à 20:38 - Dernière réponse : cdelory 39 Messages postés mercredi 7 mars 2012Date d'inscription 26 septembre 2012 Dernière intervention
- 19 sept. 2012 à 23:52
Bonjour a tous

Il y a un bon moment déja, je me suis mis dans l'idee de fabriquer un robot , avec des roues des moteurs et avec une camera... et honnetement je suis niveau bac -2 en informatique....( bac -2 )
J'en voie déja rigoler dans les coins !
Mais n'écoutant que mon courage, soutenu par mon fidele amis google, j'ai attaqué le prog.
Aprés un long-long travail fastidieux et intense, je suis enfin parvenu a capter une image avec ma webcam et à detourer les formes... bon c'est un début... j'en profite pour remercier Mr Sobel et sa matrice !
Pour cela j'utilse bien evidement getpixel.
Et comme vous vous en doutez c'est trés trés lent : 8 secondes pour une matrice de 640*480 .
Bref j'ai donc repris mes recherches et j'ai trouvé : GETDIBITS, souvent utilisé par DARKSIDIOUS dans bon nombre de codes.
J'esperais domestiquer GETDIBITS en essayant les codes de DARKSIDIOUS, et ainsi comprendre le fonctionnement de cette fonction, mais les codes bugs tous sur vb.net , et je ne parvient pas a les debugger malgré de grosses prises de tete et d'innonbrables recherches sur google .
Alors je m'en remet à vous, avez vous sous la main un code simple, utilisant cette satannée fonction: GETDIBITS ... et surtout, qui FONCTIONNE ô grââl parmis les grââls !!!

Gros bisous a tous !
Afficher la suite 

Votre réponse

40 réponses

Meilleure réponse
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 28 août 2012 à 19:09
3
Merci
Ouais ..
Tu mélanges apparemment tout et n'hésites pas à distordre également tout (y compris les noms de ces fonctions).
Suis donc les conseils que t'a donnés Banana32. Ne te frotte pas aux fonctions de l'Api de Windows. Reste sagement avec VB.Net.
Pour constituer ton fameux tableau ====>>
Tapez le texte de l'url ici.
A lire, à comprendre, à bûcher.

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ

Merci ucfoutu 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 69 internautes ce mois-ci

Commenter la réponse de ucfoutu
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 22 août 2012 à 21:52
0
Merci
Bonjour,
Pour autant que je le sache, DarkSidious développait sous VB6 (et non sous VB.Net) avant de passer à Java (son dada, maintenant).
Si tu t'es contenté de copier/coller ses codes, cela ne risque pas de marcher. Les longs de VB6 sont à passer à des Integer en VB.Net.




________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Commenter la réponse de ucfoutu
Utilisateur anonyme - 23 août 2012 à 02:22
0
Merci
Bonjour,

Si tu comprends l'anglais, Microsoft maintient un site consacré à l'informatique ludique. Je sais qu'ils ont déjà parlé des robots.

Channel9, incluant Coding4fun
Commenter la réponse de Utilisateur anonyme
cdelory 39 Messages postés mercredi 7 mars 2012Date d'inscription 26 septembre 2012 Dernière intervention - 23 août 2012 à 07:45
0
Merci
Ha tiens mon copain ucfoutu ! t'm'arcono ?

Comme je le disais dans ma demande, je n'ai pas que copier/coller, j'ai passé des heures a essayer de debugger mais sans succés.
Vb.net declare 15 erreurs sur le dernier code, genre : ReDim n'est pas une fonction vb.net, ou " bidule" non déclaré , ou Hdc " je sais pas quoi"...
J'essais de comprendre une fonction "GETDIBITS" (soit-disant ultra rapide pour le traitement d'image) à travers un programme qui l'utilise, mais si le programme ne marche pas et que les erreurs sont +ou- liées a la fonction que je ne connais pas ca devient compliquer... bref beaucoup trop complexe à résoudre...
J'ai essayé au moins 8 codes, j'ai essayé de tous les debugger ( sauf celui avec 81 erreurs !!!), mais je n'ai pas reussi a en faire tourner un seul.

Je sais que Darksidious programmait en Vb6, mais pour l'utilisation de GETDIBITS je ne trouve que des codes en Vb6 de toute facon... quedalle en vb.net, de plus j'ai étendu ma recherche sur tous les forums et je ne trouve pas plus de code " entier " et exploitable et encore moins de Tuto. Donc là je suis sec.

C'est pourquoi je me permets en dernier recours de vous demander de l'aide.
Commenter la réponse de cdelory
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 23 août 2012 à 08:24
0
Merci
t'm'arcono ?

Maintenant oui.
Je t'ai pour ma part indiqué certaines choses (de base), tant dans cette discussion que dans une discussion antérieure.
Ne développant pas sous VB.Net, je préfère te laisser là.
Bonne chance.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Commenter la réponse de ucfoutu
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 23 août 2012 à 08:35
0
Merci
PS : je crois comprendre que tu as demandé à DarkSidious s'il pouvait t'aider à transposer son propre code VB6 pour VB.Net.
Je ne sais pas s'il verra ton message, mais n'attends pas trop une réponse positive de sa part, car je ne crois pas qu'il ait "retourné sa veste" en ce qui concerne VB.Net, dont je me rappelle fort bien qu'il n'a jamais voulu l'accepter (et il est aller jusqu'à bouder carrément MSoft, allant vers Java).


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Commenter la réponse de ucfoutu
cdelory 39 Messages postés mercredi 7 mars 2012Date d'inscription 26 septembre 2012 Dernière intervention - 23 août 2012 à 08:46
0
Merci
Ok ucfoutu, concernant Darksidious je ne me faisais pas trop d'illusions car ces dernieres contributions VB dates de 2004 ...

J'espere que quelqu'un pourra m'aider tout de meme, je regrette cependant que les sections vb.net et vb5/6 soient confondues sur ce forum, car pour trouver de l'aide spécifique au vb.net c'est hard.

Je trouve aussi curieux de trouver si peu d'infos sur vb.net en regle generale...

En attend, si tu as des contacts qui s'y connaissent en vb.net et GETDIBITS je suis preneur
Commenter la réponse de cdelory
cdelory 39 Messages postés mercredi 7 mars 2012Date d'inscription 26 septembre 2012 Dernière intervention - 23 août 2012 à 12:33
0
Merci
En passant, dommage que tu ne maitrises pas vb.net car j'ai vu sur develloppez.com que tu maitrisais en revanche GETDIBITS
Commenter la réponse de cdelory
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 23 août 2012 à 12:55
0
Merci
Oui.
Mais ce n'est pas que je "ne maîtrise pas VB.Net" !
C'est plutôt (comme DarkSidious) que Microsoft devra chercher d'autres que moi pour "courir derrière une carotte", hein !
Quant à l'autre "référence" (un site) : réponse quasi identique.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Commenter la réponse de ucfoutu
cdelory 39 Messages postés mercredi 7 mars 2012Date d'inscription 26 septembre 2012 Dernière intervention - 23 août 2012 à 13:22
0
Merci
Oui, bah c'est pas parceque j'aime pas Renault que je donnerais pas un coup de main a un mec en panne avec sa 4L au bord de la route.
Commenter la réponse de cdelory
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 23 août 2012 à 14:49
0
Merci
Coup de main donné pour la base (voir message plus haut ainsi que discussion antérieure). Le reste, je te le laisse (également déjà dit).

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Commenter la réponse de ucfoutu
cdelory 39 Messages postés mercredi 7 mars 2012Date d'inscription 26 septembre 2012 Dernière intervention - 23 août 2012 à 15:12
0
Merci
C'est marrant de voir qu'il y a des gens qui passent leur temps à dire aux autres "débrouille-toi".

Alors que je cherche depuis des semaines, tu viens me dire : sujet abordé, y'a qu'a lire, si tu te donnais la peine une seconde de te mettre au niveau des débutants tu comprendrais qu'il y a des obstacle relativement dure à franchire quand on est pas clairement initié.
Par exemple, comme expliqué au début de ce post, il est impossible pour le débutant que je suis d'a la fois comprendre et debuguer un code dont on ne connait rien et dont on attend justement qu'il nous fasse progresser.

Pour imager, c'est comme lire des texto ( sms ) pour apprendre le francais !

Bref, j'use le soleil

Te fatigue pas à répondre, j'ai pas besoin des conseils d'un démago qui sous entend que je ne me donne pas la peine.
Commenter la réponse de cdelory
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 23 août 2012 à 18:00
0
Merci
Ouais ...
Je vais me contenter de te rappeler ce que tu veux : un tableau de bits.
C'est précisément ce que te permet d'obtenir la fonction GetDiBits et il ne me semble pas que son utilisation en VB.Net par rapport à VB6 comporte des difficultés. Seule différence : des integer et non des longs.
Le tableau (bBytes) s'obtient de la même manière :
Pour mémoire :
GetDIBits iDC, iBitmap, 0, bi24BitInfo.bmiHeader.biHeight, bBytes(1), bi24BitInfo, DIB_RGB_COLORS

ou :
idc est l'identificateur du contexte de dispositif (hdc). Il te faut d'abord l'extraire, avant d'utiliser GetDiBits
iBitmap est le bitmap à traiter
0 pour dire que l'on part de la première ligne (dans le scan). Tu peux démarrer à la ligne de ton choix, selon ce que tu veux.
bi24BitInfo.bmiHeader.biHeight spécifie le nombre de lignes à "scanner" (limite du tableau recherché). C'est la valeur du membre bmiheader de la structure bi24BitInfo (bârie sur la structure Bitmapinfo). En te rappelant que ce membre est lui-même structuré (structure de BITMAPINFOHEADER) et comprend le membre biHeight.
Les deux derniers paramètres sont les suivants :
- le premier (ici bi24BitInfo) pointe vers la structure BITMAPINFO structure (dont les membres spécifient le format désiré) pour les données à récupérer.

- Le second (ici DIB_RGB_COLORS) spécifie le format du membre bmiColors de la structure BITMAPINFO structure (valeurs possibles :
--- DIB_PAL_COLORS : correspondant à une table de couleurs en matrice 16 bits pour la palette logique en cours
--- DIB_RGB_COLORS : correspondant à une table de couleurs définies en RGB
Voilà.
Tu en sais maintenant suffisamment sur cette fonction pour l'utiliser en connaissance de cause.
Ce sera tout en ce qui me concerne.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Commenter la réponse de ucfoutu
Utilisateur anonyme - 23 août 2012 à 23:29
0
Merci
Bonsoir,

Dans une précédente discussion, un demandeur avait parlé de EMGU CV.
Ca pourrait être intéressant pour toi.
Commenter la réponse de Utilisateur anonyme
cdelory 39 Messages postés mercredi 7 mars 2012Date d'inscription 26 septembre 2012 Dernière intervention - 24 août 2012 à 07:47
0
Merci
Merci ucfoutu, j'irais pas jusqu' a dire que tu fais franchement avancé, mais là au moins j'ai matière à travailler, tes infos vont me permetre de poursuivre ma recherche... Merci

Salut banana32, ton 1er lien a l'air super interessant, le 2eme ne fonctionne pas ( enfin pas chez moi).

Et quand j'aurais compris ca:
bi24BitInfo.bmiHeader.biHeight spécifie le nombre de lignes à "scanner" (limite du tableau recherché). C'est la valeur du membre bmiheader de la structure bi24BitInfo (bârie sur la structure Bitmapinfo). En te rappelant que ce membre est lui-même structuré (structure de BITMAPINFOHEADER) et comprend le membre biHeight.
Les deux derniers paramètres sont les suivants :
- le premier (ici bi24BitInfo) pointe vers la structure BITMAPINFO structure (dont les membres spécifient le format désiré) pour les données à récupérer.
... je serais le roi du monde !!!
Commenter la réponse de cdelory
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 24 août 2012 à 08:03
0
Merci
Compris quoi ?
Ce qu'est uns structure ? Comment elle se déclare ?
Ce qu'est une structure de structures ?
Cela s'apprend indépendamment de telle ou telle autre appli VB !
Une structure :
- sous VB6 : est une variable personnalisée et est déclarée comme type
- sous VB.Net : est la même chose et se déclare comme Structure

- biheight ? (qui est le nombre de lignes/hauteur ?) ! bmiheader est l'entête. Elle contient la hauteur (biHeight). bmiHeader est un membre de la structure bi24BitInfo (structurée comme Bitmapinfo). Ce membre est lui même déclaré (au sein de cette structure) comme structuré selon la structure BITMAPINFOHEADER qui contient le membre biHeight.
On en revient à ce que je t'ai dit : apprendre ce que sont les structures et ce que sont les structures de structures (et cela : indépendamment de ton problème actuel . L'apprendre de manière générale VB). A vouloir brûler les étapes, tu passeras ton temùps à avoir des difficultés à comprendre beauicoup trop de choses.
_______________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Commenter la réponse de ucfoutu
cdelory 39 Messages postés mercredi 7 mars 2012Date d'inscription 26 septembre 2012 Dernière intervention - 24 août 2012 à 08:24
0
Merci
A vouloir aller trop vite je me heurte à des problemes c'est certain, mais à coder de la m....e je ne risque pas d'etre confronté à mon ignorance, donc de progresser ! Je prefere donc placer la barre plus haut au risque de séverement galerer !!!

Merci pour les infos, je vous tiens au jus ( maintenant c'est à moi de piocher )
Commenter la réponse de cdelory
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 24 août 2012 à 08:28
0
Merci
Progresse donc comme toi, tu l'entends.
Je ne pense quant à moi pas que l'on puisse comprendre la multiplication sans passer par l'étude de l'addition. Mais je suis un "lent" et peu doué. Tu as plus de chance ? Tant mieux




________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Commenter la réponse de ucfoutu
cdelory 39 Messages postés mercredi 7 mars 2012Date d'inscription 26 septembre 2012 Dernière intervention - 24 août 2012 à 08:49
0
Merci
Tu ne peux t'empécher d'etre sarcastique et arrogant dés que l'opinion des autres diverge de la tienne, tu sais qu'il y a d'autres manières de s'exprimer ?

Tu manques cruellement d'empathie
Commenter la réponse de cdelory
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 24 août 2012 à 09:30
0
Merci
Oui.
Bonne chance


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Commenter la réponse de ucfoutu

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.