Einzelnen Beitrag anzeigen

steppo

Registriert seit: 31. Dez 2002
235 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

Re: Scanline erklären

  Alt 11. Mär 2005, 23:33
Ok Leute,
das ist der Qelltext, den ich bis jetzt habe.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  BitMap: TBitMap;
  y, x: integer;
  P: PByteArray;
begin
  BitMap := TBitMap.create;

  try
    BitMap.LoadFromFile('Datei.bmp');

      BitMap.PixelFormat:= pf24Bit;

    for y := 0 to BitMap.Height - 1 do
    begin
      P := BitMap.ScanLine[y];
      ProgressBar1.StepIt;
      for x := 0 to BitMap.Width - 1 do
      begin
        P[x] := y;
        Caption := inttostr(x) + ' \ ' + inttostr(y) + ' \ ' +
          ColorToString(Canvas.Pixels[x, y]) + ' \ ' + inttostr(P[x]);
        if (Canvas.Pixels[x, y] = clblack) or (ColorToString(Canvas.Pixels[x,
          y]) = '#000000') then
          Sleep(1000);
        Canvas.Pixels[x, y] := clBlue;
      end;
    end;

  finally
    BitMap.Free;
  end;
end;
Ich färbe einfach jedes gelesene weiße Pixel in ein blaues Pixel ein.
Womit arbeite ich jetzt im Endeffekt.

Mit ScanLine oder mit Pixel?
Meiner Meinung nach kann ich diesen Vorgang auch mit zwei einfachen Schleifen verwirklichen.
Mit gleicher Performance.
Oder?
Wir sind heute die, vor denen uns unsere Eltern immer gewarnt haben!
  Mit Zitat antworten Zitat