Thema: Delphi Arraydaten in Bitmap??

Einzelnen Beitrag anzeigen

erniepb

Registriert seit: 8. Jun 2002
Ort: Berlin
96 Beiträge
 
Delphi 7 Enterprise
 
#1

Arraydaten in Bitmap??

  Alt 28. Aug 2004, 12:13
Hallo

Gleich zur Frage: Welche Möglichkeiten gibt es die Daten aus einem Array[1..n,1..m] of record ... der unteranderem auch einen Farbwert enthält an ein Bitmap oder ähnliches zu übergeben, wobei die Array-Koordinaten gleich den Pixel-Koordinaten.

Momentan mach ich des so, wobei das ganze kontinuierlich durch ne Timerkomponente aufgerufen wird:
Code:
TCanvasPlaneCoord = record
                      Color : TColor;
                      Dist : Extended;
                      Used : Boolean
                     end;

var
 CanvasPlane : array of array of TCanvasPlaneCoord = NIL;

procedure TFormDrawingBoard.CanvasPlaneToImage(DestinationImage: TImage);
 var
  i,j : Integer;
  MyBmp : TBitmap;
 begin
  MyBmp := TBitmap.Create;
  MyBmp.Height := High(CanvasPlane[0]);
  MyBmp.Width := High(CanvasPlane);

  DestinationImage.Width := MyBmp.Width;
  DestinationImage.Height := MyBmp.Height;
  DestinationImage.Picture.Bitmap.Width := MyBmp.Width;
  DestinationImage.Picture.Bitmap.Height := MyBmp.Height;
  DestinationImage.Picture.Graphic.Width := MyBmp.Width;
  DestinationImage.Picture.Graphic.Height := MyBmp.Height;

  for i := Low(CanvasPlane) to High(CanvasPlane) do
   begin
    for j := Low(CanvasPlane[i]) to High(CanvasPlane[i]) do
     begin
      MyBmp.Canvas.Pixels[i,j] := CanvasPlane[i,j].Color;
     end;
   end;

  DestinationImage.Canvas.Draw(0,0,MyBmp);
  MyBmp.Free;                                    
 end;
Gibts hierfür noch ne Verbesserungsmöglichkeit, heißt etwas dass den Prozessor bei größeren Dimensionen nicht gleich an seine Belastungsgrenze bringt?
Danke schonmal im Vorraus.

Mfg ..
  Mit Zitat antworten Zitat