Einzelnen Beitrag anzeigen

ChinEnte

Registriert seit: 12. Mär 2005
Ort: Heidelberg
8 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Farbwerte aus JPEG Bildern auslesen

  Alt 12. Mär 2005, 23:54
Code:
procedure TForm1.Button2Click(Sender: TObject);
var               //Hier wird das Bild in Image1 eingelesen
  Jpeg: TJpegImage;
  FBitmap:TBitmap;
begin
  Jpeg := TJpegImage.Create;
  try
    Jpeg.LoadFromFile(edit1.text);
    FBitmap := TBitmap.Create;
    FBitmap.Assign(Jpeg);
    Image1.Picture.Bitmap := FBitmap;
  finally
    Jpeg.Free;
  end;
end;


procedure TForm1.Button1Click(Sender: TObject);
var farben:array of integer;
    i,j,k:integer;
begin             //Hier werden die Farbwerte ausgelesen
for i:= 1to 760 do begin
  for j:= 1to 578 do begin
  k:=k+1;
  farben[k]:=image1.canvas.pixels[i,j]

  end;
end;
end;
Haben diesen Code jetzt geschrieben und alles klappt einwandfrei bis zu "farben[k]:=image1.canvas.pixels[i,j]"
da kommt dann die Fehlermeldung "can only modify Image if it contains a bitmap" aber wir wollen die ja nicht modifizieren, sondern lediglich die Farbwerte auslesen. Zumal:
Oberhalb wurde ja bitmap bereits in Bezug gebracht zu Image1 und alles lief. Auch führt das Umwandeln des Bildes zu einer Bitmap lediglich zu einer anderen Fehlermeldung.

EDIT:

Also, wir haben jetzt noch diesen Codeteil hier hinzugefügt:
Code:
procedure TForm1.FormCreate(Sender: TObject);

  VAR Bitmap : TBitmap;
begin
  Bitmap := TBitmap.Create;
  Bitmap.Width := 760;
  Bitmap.Height := 578;
  Image1.Picture.Graphic := Bitmap;
end;
und erhalten nun immer diesen Fehler:

'Access violation at address 0046548C in module 'Project1.exe'. Write of address 010AB424.'

@Kiste:
Haben das mit dem TOpenDialog gefunden und wollten es gleich mal zum Test bringen, aber wenn ich des in mein Formblatt einfüge und das Programm starte erscheint das Teil nicht auf dem ausgeführten Programm...
  Mit Zitat antworten Zitat