unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, jpeg, ExtCtrls, ExtDlgs, pngimage, GIFImg;

type
  TForm1 = class(TForm)
    Image1: TImage;
    Label1: TLabel;
    Label2: TLabel;
    ScrollBox1: TScrollBox;
    OpenPictureDialog1: TOpenPictureDialog;
    Button1: TButton;
    procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Button1Click(Sender: TObject);
  private

  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var  obrazBMP: TBitmap;
begin
  //w deklaracji uses modułu należy dodać moduły: jpeg, pngimage, GIFImg
  //lub dodane zostaną automatycznie po załadowaniu określonego typu pliku we własciwości Picture
  // komponentu Image w fazie projektowania
  OpenPictureDialog1.InitialDir:=GetCurrentDir;
  if OpenPictureDialog1.Execute then Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);

  //zamiana formatu obrazu (JPG, GIF, PNG i innych) na TBitmap, który posiada właściwość Canvas.Pixels
  obrazBMP:=TBitmap.Create;   //pomocnicza zmienna obrazBMP
  obrazBMP.Assign(Image1.Picture.Graphic); //przekształacenie i załadowanie obrazu do obrazBMP
  Image1.Picture.Bitmap:=obrazBMP;  //ponowne załadowanie obrazu do komponentu TImage w formacie .BMP
  obrazBMP.Free; //na koncu zwolnienie pamięci
end;

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);

begin
   Label2.Caption:=ColorToString(Image1.Canvas.Pixels[x,y]);
end;

end.
