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

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

Marsh Posté le 21-04-2002 à 12:05:05    

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

Reply

Marsh Posté le 21-04-2002 à 12:05:05   

Reply

Marsh Posté le 21-04-2002 à 12:13:47    

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
Reply

Marsh Posté le 21-04-2002 à 12:19:56    

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

Reply

Marsh Posté le 21-04-2002 à 12:24:15    

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

Reply

Marsh Posté le 21-04-2002 à 12:26:36    

Windows, Graphics;
 
 
c bon g trouvé  :D

Reply

Marsh Posté le 21-04-2002 à 15:25:32    

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]

Reply

Marsh Posté le 21-04-2002 à 17:28:34    

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
Reply

Marsh Posté le 22-04-2002 à 10:29:47    

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.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed