Zitat von
steppo:
Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
var //Hier wird das Bild in Image1 eingelesen
BMP : TBitmap;
farben:array of integer;
i,j,k:integer;
begin
//
end;
Hier wird kein Image eingelesen, sondern lediglich Variablen deklariert.
Der Kommentar gehört wohl eher zur gesamten Prozedur.
Zitat:
Delphi-Quellcode:
BMP := TBitmap.Create;
try
BMP.LoadFromFile('C:\test.bmp');
Image1.Picture.Bitmap.Assign(BMP);
finally
BMP.Free;
//Hier werden die Farbwerte ausgelesen
for i:= 0 to Image1.Picture.Bitmap.Width - 1 do
for j:= 0 to Image1.Picture.Bitmap.Height - 1 do
begin
farben[k]:=image1.canvas.pixels[i,j];
Inc(k);
end;
end;
Der zweite Punkt ist, bevor du die Werte ausliest, gibst du das Bitmap wieder frei!
Deine Schleife gehört in den Try - Teil deiner Procedure.
Er lädt ein Bild ins Bitmap, weist dies dem Image zu, gibt das Bitmap dann frei und greift dann auf die Pixel
des Images zu. Dazu braucht er ja das Bitmap nicht mehr (auch wenn es natürlich nicht der beste Weg ist).