Thema: Delphi Frage zu ScanLine

Einzelnen Beitrag anzeigen

Koller

Registriert seit: 22. Mär 2005
59 Beiträge
 
#1

Frage zu ScanLine

  Alt 6. Aug 2006, 19:04
Delphi-Quellcode:
 //Farbtiefe der beiden Pictures auf 32 bit setzen
       Picture1.Bitmap.PixelFormat := pf32Bit;
       Picture2.Bitmap.PixelFormat := pf32Bit;
       //in einer Zählschleife Zeile für Zeile durchgehen
       for y := 0 to Picture1.Bitmap.Height - 1 do
       begin
         //per ScanLine die Zeile auslesen
         Line1 := Picture1.Bitmap.ScanLine[y];
         Line2 := Picture2.Bitmap.ScanLine[y];
         Line3 := Target.Bitmap.ScanLine[y];
         //die ausgelesenen Zeilen von links nach rechts durchgehen
         for x := 0 to Picture1.Bitmap.Width - 1 do
         begin
           //die Farbe des aktuellen Pixels von Picture1 berechnen
           tempColor1 := RGB(Line1.rgbRed,Line1.rgbGreen,Line1.rgbBlue);
           //die Farbe des aktuellen Pixels von Picture2 berechnen
           tempColor2 := RGB(Line2.rgbRed,Line2.rgbGreen,Line2.rgbBlue);
           //je nachdem, welches Bild oben ist, die Mischfarbe berechnen
           if (PictureAboveID = 1) then
             tempColor3 := MixColor(tempColor1,tempColor2,AlphaBlendValue)
           else
             tempColor3 := MixColor(tempColor2,tempColor1,AlphaBlendValue);
           //in den aktuellen Pixel des Ziel-Pictures die Mischfarbe schreiben
          //wird durch die folgenden drei Anweisungen die neue Farbe geschrieben?
           Line3.rgbBlue := GetBValue(tempColor3);
           Line3.rgbGreen := GetGValue(tempColor3);
           Line3.rgbRed := GetRValue(tempColor3);
           //die drei Pointer inkrementieren, um zum nächsten Pixel zu gelangen
           inc(Line1);
           inc(Line2);
           inc(Line3);
         end;
Ich berechne die Mischfarbe zweier TColor und will sie in Target.Bitmap schreiben. Wird durch die drei markierten Anweisungen die neue Farbe auch geschrieben, weil ich bei der Ausgabe nur ein weißes Bild erhalte?
  Mit Zitat antworten Zitat