Einzelnen Beitrag anzeigen

Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#25

Re: Bitmap32 auf ZielBitmap32 malen

  Alt 30. Jul 2008, 13:56
BitBlt ignoriert das "Reserwed"-Byte eines Bitmaps welches bei der GR32 als Alphakanal verwenet wird.
Das sind Altlasten der Windowsvorgänger ni nichts mit Transpatenzen zu schaffen haben "wollten".


Delphi-Quellcode:
procedure TForm1.FormPaint(Sender: TObject);
var qb1, qb2, qb3, ziel: TBitmap32;
begin
  //Erzeugen und Zeichnen der 3 Quellbitmaps
  qb1 := TBitmap32.Create;
  try
    qb1.Width := 20;
    qb1.Height := 40;
    qb1.FillRect(0,0,20,40, clRed32);
    // Oder
    // DrawTo(Dst: TBitmap32; DstX, DstY: Integer; const SrcRect: TRect);

    qb2 := TBitmap32.Create;
    try
      qb2.Width := 20;
      qb2.Height := 40;
      qb2.FillRect(0,0,20,40, clYellow32);

      qb3 := TBitmap32.Create;
      try
        qb3.Width := 20;
        qb3.Height := 40;
        qb3.FillRect(0,0,20,40, clBlue32);

        //Erzeugen und Zeichnen der Zielbitmap
        ziel := TBitmap32.Create;
        try
          ziel.Width := 60;
          ziel.Height := 40;
          //linke Quellbitmap
          ziel.Draw(0,0 ,qb1);
          //mittlere Quellbitmap
          ziel.Draw(qb1.Width,0,qb2);
          //rechte Quellbitmap
          ziel.Draw((qb1.Width + qb2.Width),0,qb3);
          ziel.DrawTo(Self.Canvas.Handle, 10, 10);
        finally
          ziel.Free;
        end;
      finally
        qb3.Free;
      end;
    finally
      qb2.Free;
    end;
  finally
    qb1.Free;
  end;
end;
... was klappt da jetzt nicht ?
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat