Announcement

Collapse
No announcement yet.

Farbwerte aus jpg lesen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Farbwerte aus jpg lesen

    Hallo,

    ein "simples " Problem: ich stelle in meinem Fenster ein TImage-Objekt dar. Über einen Button lade ich zur Laufzeit eine jpg-Datei. Nun möchte ich, wenn ich über dem Bild klicke die RGB-Werte erhalten. Meine Idee war:

    procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
    Shift: TShiftState; X, Y: Integer);
    var clr : TColor;
    col : LongInt;
    begin
    clr:=Image1.Picture.Bitmap.Canvas.Pixels[x,y];
    col:=ColorToRGB(clr);
    end;

    Allerdings erhalte ich bei geladenem jpg immer nur Wert -1. Ich vermute, dass die Komprimierung mir hier einen Streich spielt, da bei anderen Grafikformaten alles klappt.
    Kann mir jemand einen Tipp geben?

    Danke.

    Roland

  • #2
    Ein jpeg liegt so weit ich weiss nicht in

    Image1.Picture.Bitmap

    Lade das Bild am besten erst mal in ein TPicture
    und copiere dann das Bild in dein image.
    Dazu mußt du die Bildgröße noch vorher einstellen.

    tempPicture.LoadFormFile(...);
    image1.picture.bitmap.Canvas.Draw(..., tempPicture.graphic)

    Comment

    Working...
    X