ich möchte gerne ein bild laden und das dann in ein Normales Tbitmap.canvas einfügen.
Ich bin verschinde beispiel von OpBitmap durch gegangen bin aber nicht hinter das Geheimnis gekommen

Könnt mir jemand ein kleines beispiel dazu machen ? Danke !
Code: Alles auswählen
Hintergrund:=TLazOPPicture.Create(nil);
Hintergrund.LoadFromFile('/home/pluto/daten/eigene/lazarus/Drawball/sourcecode/display.png');
bild:=TBitmap.Create;
AssignOpBitmapToBitmap(Hintergrund.Bitmap,bild)
Kommt halt drauf an wie man's macht. Wenn er es dauernd in ein TBitmap umwandeln muss, braucht's natürlich etwas CPU.pluto hat geschrieben: Wenn ich alles was mit optbitmap zu tuen hat raußnehme läuft es normal.
Wenn ich es wieder reinmache ist die cpu last bei 100% was sonst nicht der Fall !
Code: Alles auswählen
procedure TGameDisplay.Draw(buffer:TBitmap);
begin
buffer.Canvas.Draw(left,top,bild)
end;
constructor TGameDisplay.Create;
begin
Hintergrund:=TLazOPPicture.Create(nil);
Hintergrund.LoadFromFile('/home/pluto/daten/eigene/lazarus/Drawball/sourcecode/display.png');
bild:=TBitmap.Create;
AssignOpBitmapToBitmap(Hintergrund.Bitmap,bild)
end;
Code: Alles auswählen
var
r:Trect;
Hintergrund:TOPPicture;
ah:TCanvasOPBitmap;
begin
Hintergrund:=TOPPicture.Create;
Hintergrund.LoadFromFile('/home/pluto/daten/eigene/lazarus/Drawball/sourcecode/display.png');
bild:=TBitmap.Create;
ah:=TCanvasOPBitmap.Create;
ah.AlphaBlend:=True;
ah.Width:=100; ah.Height:=100;
ah.Canvas.Brush.color:=clBlue;
ah.canvas.FillRect(rect(0,0,100,100));
ah.SetAlpha(100);
Hintergrund.Bitmap.AlphaBlend := true;
Hintergrund.Bitmap.Canvas.Draw(0, 0, ah);
Hintergrund.Bitmap.AlphaBlend := false;
AssignOpBitmapToBitmap(Hintergrund.Bitmap,bild);
Hintergrund.free;
ah.free;