Thema: Delphi Scanline verwenden

Einzelnen Beitrag anzeigen

Benutzerbild von Tormentor32
Tormentor32

Registriert seit: 27. Okt 2005
Ort: Düsseldorf
369 Beiträge
 
Delphi XE5 Professional
 
#7

Re: Scanline verwenden

  Alt 11. Dez 2006, 13:53
Zitat:
1. Du übergibst RGB() immernoch die falsche Reihenfolge! Dies hatte ich oben schon angemerkt. Erst rot, grün und dann blau.


Ich habe deinen Code umgesetzt, aber es tut sich imer noch nichts, die Bedingung funktioniert aber,
ich habe das mit einem Showmessage überprüft. Hier mal den Ganzen Code ausm Kontext:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var x,y: integer;
  P,P2: PRGBQuad;
//P,P2: PRGBTriple;
begin
  Bitmap1 := TBitmap.Create;
  Bitmap2 := TBitmap.Create;
  Bitmap1.LoadFromFile('i.bmp');
  Bitmap2.LoadFromFile('X.bmp');
  Bitmap1.PixelFormat:= pf32Bit;
  Bitmap2.PixelFormat:= pf32Bit;

  image1.Canvas.Draw(0,0,bitmap1);

  for y := 0 to bitmap2.Height-1 do
  begin
    P := bitmap2.Scanline[y];
    P2 := image1.Picture.Bitmap.ScanLine[y];
    for x := 0 to bitmap2.Width-1 do
      begin
        if RGB(P^.rgbRed, P^.rgbGreen, P^.rgbBlue) <> ColorToRGB(clFuchsia)
          then
            P2^ := P^;
        inc(P);
        inc(P2);
      end;
  end;
end;
Das sollte klappen, tuts aber nicht
Richard Mahr
  Mit Zitat antworten Zitat