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

  FORUM HardWare.fr
  Programmation

  [Couleurs] convertir des couleurs en niveaux de gris ???

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Couleurs] convertir des couleurs en niveaux de gris ???

n°129002
trueslash
(╯°□°)╯︵ MMM
Posté le 21-04-2002 à 12:05:05  profilanswer
 

je veux convertir une image 24 Bits en une image défini sur plusieurs niveaux de gris (une centaine)
 
comment faire ça ?

mood
Publicité
Posté le 21-04-2002 à 12:05:05  profilanswer
 

n°129003
antp
Super Administrateur
Champion des excuses bidons
Posté le 21-04-2002 à 12:13:47  profilanswer
 

J'ai eu besoin de faire ça récemment.
Moi j'ai pris la solution facile : moyenne des valeurs rouge vert bleu :D À mon avis y a une formule plus complexe qui donne un résultat mieux, mais ça donnait déjà pas mal...
Enfin ça donnait ça:

Code :
  1. type
  2.   pRGBArray  =  ^TRGBArray;
  3.   TRGBArray  =  array [0..32767] of TRGBTriple;
  4. procedure Grayscale(APicture: TBitmap);
  5. var
  6.   i, j: Integer;
  7.   LinePtr: PRGBArray;
  8.   AColor: Byte;
  9.   OldFormat: TPixelFormat;
  10. begin
  11.   with APicture do
  12.   begin
  13.     OldFormat := PixelFormat;
  14.     PixelFormat := pf24bit;
  15.     for i := 0 to Height-1 do
  16.     begin
  17.       LinePtr := ScanLine[i];
  18.       for j := 0 to Width-1 do
  19.         with LinePtr[j] do
  20.         begin
  21.           AColor := (rgbtBlue + rgbtGreen + rgbtRed) div 3;
  22.           rgbtBlue := AColor;
  23.           rgbtGreen := AColor;
  24.           rgbtRed := AColor;
  25.         end;
  26.     end;
  27.     PixelFormat := OldFormat;
  28.   end;
  29. end;

 

[jfdsdjhfuetppo]--Message édité par antp le 21-04-2002 à 12:14:16--[/jfdsdjhfuetppo]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°129009
trueslash
(╯°□°)╯︵ MMM
Posté le 21-04-2002 à 12:19:56  profilanswer
 

je pense que ça devrait me suffir  :D  
 
 :jap: merci bcp

n°129013
trueslash
(╯°□°)╯︵ MMM
Posté le 21-04-2002 à 12:24:15  profilanswer
 

tu peux me filer la liste des fichiers à inclure stp ?

n°129015
trueslash
(╯°□°)╯︵ MMM
Posté le 21-04-2002 à 12:26:36  profilanswer
 

Windows, Graphics;
 
 
c bon g trouvé  :D

n°129035
MC
retour à la raison
Posté le 21-04-2002 à 15:25:32  profilanswer
 

Attention, si tu veux faire une bonne conversion c'est pas du 0.33/0.33/0.33 dans les rapports de couleurs:
 
Gray scale=Y=(222*Red+707*Green+71*Blue)/1000 (formule de conversion ITU).
 
Car en réalité l'oeil est plus sensible dans le vert, puis le rouge et enfin le bleu.
 
Un lien:
 
http://www.jentronics.com/color.html

 

[jfdsdjhfuetppo]--Message édité par MC le 21-04-2002 à 15:26:42--[/jfdsdjhfuetppo]

n°129063
antp
Super Administrateur
Champion des excuses bidons
Posté le 21-04-2002 à 17:28:34  profilanswer
 

Merci pour l'info, je vais mettre à jour ma fonction ;) :jap:
Comme c'était pour les icônes d'une barre d'outils ça se voyait probablement pas à l'oeil nu que c'était pas vraiment les niveaux de gris "officiels" :D

 

[jfdsdjhfuetppo]--Message édité par antp le 21-04-2002 à 17:29:12--[/jfdsdjhfuetppo]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°129164
bjone
Insert booze to continue
Posté le 22-04-2002 à 10:29:47  profilanswer
 

MC a écrit a écrit :

Attention, si tu veux faire une bonne conversion c'est pas du 0.33/0.33/0.33 dans les rapports de couleurs:
 
Gray scale=Y=(222*Red+707*Green+71*Blue)/1000 (formule de conversion ITU).
 
Car en réalité l'oeil est plus sensible dans le vert, puis le rouge et enfin le bleu.
 
Un lien:
 
http://www.jentronics.com/color.html  
 
 




 
tout a fait.
 
et c'est pour ça qu'en 16bpp, y'a 6 bits pour le vert, 5 pour les r/b. pour avoir + de précision sur le vert.


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

  [Couleurs] convertir des couleurs en niveaux de gris ???

 

Sujets relatifs
Delphi et les boutons en couleurs[c++] Est il possible de convertir une CString en Char ou vice versa?
PHP n'aime pas les couleurs !!![PHP,JAVA, web quoi]Convertir un fichier Unix en fichier dos
[C++ Builder] Convertir char* to AnsiString[C++(builder)] Convertir AnsiString en *wchar_t
Convertir .doc en .txt ou .html plizzzzzzzzz URGENT-------------[java] a propos des couleurs...
[SQL] Convertir une donnée numérique en texte et/ou en date[Java] menu déroulant en couleurs?
Plus de sujets relatifs à : [Couleurs] convertir des couleurs en niveaux de gris ???


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