Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1415 connectés 

  FORUM HardWare.fr
  Programmation

  Comment calculer la couleur moyenne d'une image bmp sous Delphi?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Comment calculer la couleur moyenne d'une image bmp sous Delphi?

n°29615
Dinofly
Posté le 07-05-2001 à 11:59:37  profilanswer
 

Tout est dans le titre, je débute au fait. Y a-t-il une fonction spéciale ou faut faire un algo?


---------------
www.planetemu.net
mood
Publicité
Posté le 07-05-2001 à 11:59:37  profilanswer
 

n°29638
darkoli
Le Petit Dinosaure Bleu
Posté le 07-05-2001 à 13:49:46  profilanswer
 

ben le plus c'est d'utiliser un composant TPaintBox.
 
 1° Tu ouvres l'image au format bmp avec la méthode du composant (dont je ne me souviens plus du nom) ca doit etre Load File ou un truc dans le genre
 
 2° apres tu recupere la hauteur et la largeur de l'image
 
 3° tu utilise la propriete Pixels du TPaintBox pour obtenir la couleur de chaque pixels.
 
Attention, il faut separer les composantes R,V,B des couleurs pour en faire la moyenne.
 

Code :
  1. var nombre_de_pixels:int64;
  2.     r,v,b:int64;
  3.     c:integer;
  4. ...
  5. r:=0;
  6. v:=0;
  7. b:=0;
  8. nombre_de_pixels=largeur*hauteur;
  9. for i:=0 (ou 1) to largeur(-1)
  10.   begin
  11.     for j:=0 (ou 1) to hauteur(-1)
  12.       begin
  13.         c=nom_composant.Canvas.Pixels[i,j];
  14.         r=r+Composante_rouge(c);
  15.         v=v+Composante_verte(c);
  16.         b=b+Composante_bleue(c);
  17.       end;
  18.   end;
  19. r=r/nombre_de_pixels;
  20. v=v/nombre_de_pixels;
  21. b=b/nombre_de_pixels;


 
Attention, ca fait quelque temps que je n'ai pas utilisé delphi alors il a surement des erreurs et il existe surement aussi un autre composant mieux adapté pour ce genre de chose (TImage peut etre).
 
Pour separer les composantes c'est tres facile :
 r=((c shr 16) and 255);
 v=((c shr  8) and 255);
 b=((c       ) and 255);
pour le vert c'est sur mais pour le rouge te le bleu il faut peut etre les inverser :
 r=((c       ) and 255);
 v=((c shr  8) and 255);
 b=((c shr 16) and 255);

n°29651
Dinofly
Posté le 07-05-2001 à 14:40:05  profilanswer
 

Merci beaucoup, je crois que je vais y arriver  :bounce:


---------------
www.planetemu.net
n°29731
JWhy
je peux plier (héhé)
Posté le 07-05-2001 à 17:43:06  profilanswer
 

pour tous les trucs de manipulations d'images ou de couleurs (algo + exemple en delphi), tu peux jeter un oeil ici: http://www.efg2.com/Lab/
 
je n'y ai pas vu qqchose qui ressemble a ce que tu voulais faire, tu peux toujours jeter un oeil a cet article ( http://www.efg2.com/Lab/ImageProcessing/Scanline.htm ) qui t'explique comment acceder aux pixels d'une image d'une maniere plus rapide que la propriete .pixels (si tu desires traiter des images de taille plus importante)


---------------
www.alliancefrancophone.org ... Home is where the heart is
n°29760
Dinofly
Posté le 07-05-2001 à 19:47:28  profilanswer
 

Merci, c'est sympa :)


---------------
www.planetemu.net

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  Comment calculer la couleur moyenne d'une image bmp sous Delphi?

 

Sujets relatifs
Javascript : une image par jour !Comment imprimer une image en delphi
Je cherche un programme qui compresse une image en jpgComment supprimer un fichier ou dossier avec delphi
Delphi : Outlook MailItem et adresse email ..attendre qu'une image soit finie d'etre chargee pour continuer ??
Insérer une image sur un bouton en VC++[VB] Couleur des graphes MSCHART
Comment changer la couleur des Contrôles texte Static en C Win32 Api ? 
Plus de sujets relatifs à : Comment calculer la couleur moyenne d'une image bmp sous Delphi?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR