Einzelnen Beitrag anzeigen

Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#9

Re: Bitmap in Array einlesen

  Alt 26. Mär 2005, 10:01
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).
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat