Les Snippets

Connexion

Image en niveaux de gris

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 26/03/2006 14:02:43 et initié par MorpionMx [Liste]
Date de mise à jour : 14/05/2007 10:12:47
Vue : 20066
Catégorie(s) : Graphique
Langages dispo pour ce code :
- C# 1.x, C# 2.x
- VB 2005, VB.NET 1.x
- C# 1.x, C# 2.x
- VB 2005, VB.NET 1.x
- VB6
- VB6
- Java
- Assembleur x86
- Delphi 5
- Java
- C++, C++ .NET 1.x, C++ .NET 2.x
- Delphi 5
- Voir tous les langages pour ce code snippet



Langage : Delphi 5
Date ajout : 15/08/2006
Posté par cirec [Liste]
// Fonction pour convertir un BMP en niveaux de gris
Function GrayScale(srcBmp, DstBmp : TBitmap): Boolean;
Type
  TRGBArray = Array[0..0] Of TRGBTriple;
  PRGBArray = ^TRGBArray;
Var
  GrayScale         : PRGBArray;
  BH, BW, Gray       : integer;
Begin
  Result := False;
  If (SrcBmp = Nil) or (DstBmp = Nil) or SrcBmp.Empty Then Exit;
  With DstBmp Do
  Begin
    PixelFormat := Pf24Bit;
    Width  := SrcBmp.Width;
    Height := SrcBmp.Height;
// pour ne pas modifier l'image originale on fait une copie dans DstBmp
// 
    BitBlt(Canvas.Handle, 0, 0, Width, Height,
      SrcBmp.Canvas.Handle, 0, 0, srcCopy);
    For BH := 0 To Height - 1 Do
      Begin
        GrayScale := Scanline[BH];
        For BW := 0 To Width - 1 Do
          With GrayScale[BW] Do
            Begin
              Gray := Round(RGBTRed * 0.3 + RGBTGreen * 0.59 + RGBTBlue * 0.11);
              RGBTRed := Gray;
              RGBTGreen := Gray;
              RGBTBlue := Gray;
            End;
      End;
  End;
End;
// Utilisation :
// Bmp est l'image d'origine
// Tmp l'image en niveaux de gris
// Image1 pour visionner le résultat
procedure TfrmMain.Button1Click(Sender: TObject);
Var Tmp : TBitmap;
begin
  Tmp := TBitmap.Create;
  GrayScale(Bmp, Tmp);
  Image1.Picture.Assign(Tmp);
  Tmp.Free;
end;


Snippets en rapport avec : Image, Picture, Niveau, Gris, Grayscale



Codes sources en rapport avec : Image, Picture, Niveau, Gris, Grayscale

{JAVA / J2EE} FAIRE DEFILER UNE IMAGE
...

{Visual Basic, VB6, VB.NET, VB 2005} CONVERTIR UNE IMAGE EN NIVEAU DE GRIS
On peut convertir une image couleur en niveau de gris via une formule empirique liée aux composantes...

{PHP} CRÉE UNE IMAGE DE PILE DE MINIATURES EN UTILISANT LA BIBLIOTHÈQUE GD
Tout est dans le titre. Regarder la capture pour mieux comprendre. N'hésitez pas à me contacter ...

{Visual Basic, VB6, VB.NET, VB 2005} LOUPE PICTURE BOX
Une loupe agrandissant une image réduite aux dimensions de l’écran Ayant été confronté a afficher d...

{Visual Basic, VB6, VB.NET, VB 2005} REDIMENSIONNER IMAGE + COMPRESSION EN JPG ( AVEC OPTION )
Bonjour, Ce controle utilisateur reprend pour plus de simplicité la methode de redimensionnement ...

{PHP} REDIMENSIONNEMENT D'UNE IMAGES, GIF, PNG, JPEG, JPG
J'éspère que ce code vous sera utile, je n'ai pas encore eu de problème avec ce code, je l'ai amélio...

{Visual Basic, VB6, VB.NET, VB 2005} ROTATION IMAGE AVEC GDI+ (EXEMPLES ET QUESTIONS)
Quelques humbles exemples à partir du source de Renfield que j'espère n'avoir pas trop massacré, pou...

{Delphi} CHARGER DES IMAGES A PARTIR D'UNE DLL
Charger des images a partir d'une DLL...

{C / C++ / C++.NET} ECRAN DE VEILLE (LOAD IMAGE REPERTOIRE)
Bonjour, Je recherchais un écran de veille paramétrable assez facilement, ne le trouvant pas j'ai...

{Javascript / DHTML} DIAPORAMA PHP / JS
Bonjour, voila ne trouvant pas de diaporama à mon goût, j'ai décidé d'en faire un moi même ;) C'est...