Bonjour,
Quelqu'un peut-il me donner un exemple de code delphi pour convertir une image 8 bit en image 2 bit. Autrement dit une image en 256 niveaux de gris en image noir et blanc brute
Bonjour,
Quelqu'un peut-il me donner un exemple de code delphi pour convertir une image 8 bit en image 2 bit. Autrement dit une image en 256 niveaux de gris en image noir et blanc brute
Des exemples,tu dois en trouver sur le forum, je ne l'ai jamais fait mais je sais
qu'il faut toucher TBitmap.PixelFormat avec la valeur pf1bit
Noir et Blanc, c'est DEUX positions, DEUX Valeurs 1 et 0 donc 1 bit
2 Bit donnerait 4 Couleurs 00, 01, 10 et 11 mais je ne connais pas !
Cela doit être pareil que Comment convertir une image 24 bits en 8 bits ?
Je te conseille d'abord de gérer toi même le passage en 00 et FF selon tes propres critères deux seuils puis de changer le format qui sinon fera une perte de données brutales
J'ai essayé ce code, mais le seuil de 128 (256/2) est-il convenable ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 BMP.PixelFormat := pf24Bit; BMP.Assign(Image1.Picture.Bitmap); bm.PixelFormat := pf1Bit; for j := BMP.Height - 1 downto 0 do begin rowGRAY := BMP.ScanLine[j]; for i := BMP.Width-1 downto 0 do begin With rowRGB[i] do Gray := (RgbtRed + RgbtGreen + RgbtBlue) DIV 3; if Gray<128 then C := clBlack else C := clWhite; bm.Canvas.Pixels[i,j] := C; end; end; Image3.Picture.Bitmap.Assign(bm);
Charge l'image et fixe le PixelFormat sur 1 bit, c'est suffisant. Il n'y a pas besoin de deux image +Scanline, etc.
Cela doit être le seuil par défaut et dans cas fait le plus simple comme le souligne AndNotOr
Ne fait un code plus complexe que si tu veux fournir un autre seuil genre ne conserver que le rouge en noir et blanc pour le reste
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 BMP.LoadFromFile(...); BMP.PixelFormat := pf1Bit; BMP.SaveToFile(...);
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager