RGB To Color??

Signaler
Messages postés
6
Date d'inscription
dimanche 24 décembre 2000
Statut
Membre
Dernière intervention
21 mai 2009
-
Messages postés
6
Date d'inscription
dimanche 24 décembre 2000
Statut
Membre
Dernière intervention
21 mai 2009
-
Bonjour à tous,
Je cherche depuis quelque temps à changer la couleur d'un pixel par une couleur dont je connais le code RGB.
J'ai essayé plusieurs trucs:
Image1.canvas.pixels[10,10]:=rgb(255,0,0);  ça ne marche pas, il me renvoie :opérateur ou point virgule manquant
Image1.canvas.pixels[10,10]:=RGBToColor((255,0,0)); opérateur RGBToColor non déclaré
Rien à faire je ne vois pas du tout comment faire.
J'ai cherché sur forum mais tout ce que je trouve c'est comment passer d'une couleur TColor à une couleur RGB.

Merci d'avance et Bonnes fêtes de fin d'années à tous!!

Corentin

4 réponses

Messages postés
2527
Date d'inscription
jeudi 15 janvier 2004
Statut
Membre
Dernière intervention
16 octobre 2019
14
Salut,

Image1.canvas.pixels[10,10] := rgb(255,0,0);   est la bonne méthode !

Relis et vérifie ton code. En particulier la ligne précédente.
Messages postés
6
Date d'inscription
dimanche 24 décembre 2000
Statut
Membre
Dernière intervention
21 mai 2009

Merci de ta réponse, je viens de regardé en créant un truc tout simple sur un unit vide et cela fonctionne à merveille.
Seulement, sur mon appli, çà ne marche pas il doit y avoir un conflit avec une autre fonction car j'ai réécris le prog dans un nouveau unit, rien à faire!!!

voici l'appli en question:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, ExtDlgs, XPMan, Spin;

type
  TForm1 = class(TForm)
    Image1: TImage;
    Couleur: TButton;
    RGB: TEdit;
    Charger: TButton;
    OpenPictureDialog1: TOpenPictureDialog;
    XPManifest1: TXPManifest;
    Shape1: TShape;
    X: TSpinEdit;
    Y: TSpinEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    procedure TButtonCouleurClick (Sender: TObject);
    procedure TButtonChargerClick (Sender: TObject);

  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var
  Form1: TForm1;
  color: TColor;
  R: Integer;
  G: Integer;
  B: Integer;
  n: integer;

implementation

{$R *.dfm}
procedure TForm1.TButtonCouleurClick(Sender: TObject);
begin
  n: =Image1.Canvas.pixels[StrToInt(X.Text),StrToInt(Y.Text)];
  R:=GetRValue(ColorToRGB(n));
  G:=GetGValue(ColorToRGB(n));
  B:=GetBValue(ColorToRGB(n));
  RGB.Text:=IntToStr(R)+','+IntToStr(G)+','+IntToStr(B);
  Image1.Canvas.pixels[StrToInt(X.Text),StrToInt(Y.Text)]:=clRed;
  Shape1.Brush.Color:=rgb(255,0,0); voilà le passage qui renvoie une erreur!!
  Shape1.Pen.Color:=rgb(255,0,0);
end;

procedure TForm1.TButtonChargerClick(Sender: TObject);
begin
OpenPictureDialog1.Execute;
Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
end;

end.

Merci d'avance, c'est pour un projet d'étude et là je suis dans l'incompréhension la plus grande...
Corentin
Messages postés
2527
Date d'inscription
jeudi 15 janvier 2004
Statut
Membre
Dernière intervention
16 octobre 2019
14
  Essaie de changer le nom de ton TEdit RGB pour voir 
      edtRGB, par exemple.

      D'ailleurs, c'est toujours mieux de préfixer les objets d'interface. Ca fait partie des règles d'écriture de code.
Messages postés
6
Date d'inscription
dimanche 24 décembre 2000
Statut
Membre
Dernière intervention
21 mai 2009

Merci beaucoup Carbensila,
C'était en effet le fait que j'ai un TEdit qui s'appelait RGB, qui posait problème.

Bonnes Fêtes de fin d'année
Corentin