begin process at 2010 02 10 05:48:40
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Mutimédia

 > 

Image & Vidéo

 > 

problème detection couleur


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

problème detection couleur

jeudi 11 janvier 2007 à 23:34:34 | problème detection couleur

Billou

Bonjour,

Je veux faire un petit algorithme me permettant de déplacer le curseur de la souris sur un pixel ayant une certaine couleur. Voila mon algo :

procedure TForm1.Button1Click(Sender: TObject);
  var i, j,z : Integer;
  canvasB : TCanvas;

begin
  canvasB = TCanvas.create;
  For i := 1 To 1920 Do
    For j := 1 to 1200 Do
      Begin
        z := CanvasB.Pixels[i,j];
        If z <> 1 Then
          Continue
        else
          SetCursorPos(i,j);
      End;

canvasB.free
End;

Cela commence sérieusement a m'irriter car ca ne marche pas. Une erreur survient lors de l'exécution : "le canevas ne permet pas de dessiner".

Je ne comprend pas pourquoi cette erreur. Si je j'affiche z : aucun problème.

merci pour votre aide


BillouBillou
vendredi 12 janvier 2007 à 17:24:04 | Re : problème detection couleur

rt15

Membre Club Administrateur CodeS-SourceS

Salut,

Tu as pas vraiment besoin de travailler sur un TCanvas je pense.

Pour placer la souris sur le pixel, il faut que tu commence par avoir une image affichée.

Ensuite, tu travails sur la TBitmap du composant contenant celle-ci. Y a une routine très sympa qui pemet de récupérer les couleurs par lignes de pixel, dont j'ai plus le nom.

Les coordonnées que tu en déduiras seront différentes de celle de l'écran que tu utiliseras avec SetCursorPos. Donc tu devras trouver un moyen de faire le calcul.

C'est certainement possible au moins via l'API Win32 GetClientRect
vendredi 12 janvier 2007 à 17:29:35 | Re : problème detection couleur

rt15

Membre Club Administrateur CodeS-SourceS
Milles excuses, ClientToScreen est certainement plus approriée.
vendredi 12 janvier 2007 à 18:17:32 | Re : problème detection couleur

ThWilliam

Membre Club
Salut Billou,

l'erreur "le canevas ne permet pas de dessiner" vient de ne pas avoir attribué de handle au Canvas.

var
   handle: HWND;

CanvasB:= TCanvas.Create;
CanvasB.Handle:= GetDeviceContext(Handle);

@ rt 15 : pour récupérer les pixels par ligne, c'est la propriété ScanLine de TBitmap.  

A +
Thierry
vendredi 12 janvier 2007 à 18:28:25 | Re : problème detection couleur

ThWilliam

Membre Club
correction : préférable de ne pas appeler la variable 'handle' dans une procedure de TForm (handle est une propriété de TWinControl dont dérive TForm).
Donc
var
   CanvHandle: HWND;
...
CanvasB.Handle:= GetDeviceContext(CanvHandle);


Cette discussion est classée dans : problème, couleur, detection, tcanvas, canvasb


Répondre à ce message

Sujets en rapport avec ce message

Problème de couleur Delphi5 et windows XP [ par smazaudi ] Voilà, j'utilise DELPHI5 et windows XP. Mon appli contient des labels, des checkbox........etc . Mon problème est que lorsque je veux leur affecter un colordialog [ par manytime ] Bonjour.J'ai un petit problème avec mon colordialog pour changer la couleur de ma form selon le choix de l'utilisateur. Normalement la couleur du fond Combobox et changement de couleur des items [ par krzysiu ] Bonjour à tous,j'ai regardé un peu partout et je ne trouve rien de convaincant. mon problème est le suivant :J'aimerais pouvoir modifier la couleur d' Menu Style XP [ par LeGuepard ] Salut à tous!J'ai un petit problème avec le composant que beaucoup d'entre vous doivent connaître, le XPMenu.En fait, lorsque j'effectue des modificat pagecontrol et la couleur [ par philpas ] bonjour, j'ai un petit problème.j'ai une fiche avec dessus un PageControl constitué de 3 pages. Je voudrais mettre le fond de ma Form en couleur => ça Problème du TPanel en Style XP [ par moneste ] Bonjour,Je me suis aperçu d'un problème de couleur avec le Tpanel si on passe en style XP.En effet, si j'applique une couleur à la propriété Color d'u Comment faire ??? [ par yoghisan ] Bonjour,Je veux dessiner des polygones fermés (facile avec des lineto). Là où ca se complique pour moi c'est que je veux remplir rapidement ce polygon Problème fichier INI [ par TiDaN326 ] Bonjour à tous :)Bon je me sert de la fonction pour créer/lire des fichiers INI... jusque là, tout va bien, mais comment je fait pour créer le fichier Lignes non compilées [ par padsou ] Salut !j'ai un gros problème avec delphi : j'ai des lignes qui sont ignorées par le compilateur, et ce n'est pas un problème de syntaxe de mes lignes, NMFTP -> problème de list [ par kuli ] Bonjour...!G un petit soucis avec le composant NMFtp...En fait, je souhaite envoyer dans un ListBox la liste des fichier contenu ds mon serveur FTP. L


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,390 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales