Re: Transparentes Bild
- From: "Andreas" <CrazyFellow@xxxxxxx>
- Date: Mon, 17 Oct 2005 22:39:47 +0200
> ich habe folgenden Code, um ein Hintergrundbild in meiner Komponente
> darzustellen:
>
> IF Assigned(FBackGround) AND Assigned(FBackGround.Graphic) THEN BEGIN
> Pic := TPicture.Create;
> Pic.Assign(FBackGround);
> // pic.Bitmap.Transparent:=true;
> //pic.Bitmap.TransparentMode:=tmauto;
> //pic.Bitmap.TransparentColor := pic.BitMap.canvas.pixels[1,1];
>
> pic.Graphic.Height:=clientrect.bottom;
> pic.graphic.Width:=clientrect.right ;
> draw(pic.graphic.height,pic.graphic.width,pic.graphic);
> pic.Assign(fBackground);
> StretchDraw(clientrect, pic.Graphic );
> end;
Hmmm,.. irgendwie ist alles etwas merkwürdig..
- Pic := TPicture.Create; aber kein Pic.free
- zwei mal pic.Assign(fBackground);
- erst draw, dann noch mal StretchDraw drüber
- draw(clientrect.right , clientrect.bottom,... // draw(x,y,...
(also hier gleich mal die Werte von Graphic eingesetzt) -> damit für x und
y die rechte untere Ecke angegeben. Sofern sich clientrect auf den
Zeichenbereich bezieht, wird also außerhalb dieses gezeichnet. - ohh, wobei
da auch noch x und y vertauscht ist,... hmm...
- und warum nach dem Assign überhaupt noch mal die höhe und breite ändern
(*)
(*)
Was für ein Format hat FBackGround überhaupt?
Bei einem JPG bekomme ich z.B. beim Versuch pic.Graphic.Height zu ändern
eine Fehlermeldung.
Auch wäre es sinnlos zu versuchen, pic.Bitmap zu ändern, da ja Pic in dem
Fall keine Bitmap ist, sonern ne JPG.
Bei einer Bitmap würde das transparentzeichnen dagegen funktionieren,...
(**)
(**) Nicht jedes von TGraphic gekapselte Graphikformat lässt sich
transparent zeichnen.
So was würde z.B. funktionieren:
(Wobei ich wohl die Bitmap nur einmal erzeugen würde,.. es muss ja noch
öfter gezeichnet werden)
var bmp : TBitmap;
begin
bmp := TBitmap.Create;
bmp.assign(FBackGround.Graphic);
bmp.Transparent:=true;
bmp.TransparentMode:=tmauto;
//oder
// bmp.TransparentColor := ...;
canvas.draw(0,0,bmp);
//oder
//canvas.StretchDraw(clientrect, pic );
bmp.free;
end;
Andreas.
.
- Follow-Ups:
- Re: Transparentes Bild
- From: Josef Koller
- Re: Transparentes Bild
- References:
- Transparentes Bild
- From: Josef Koller
- Transparentes Bild
- Prev by Date: Re: Wie/wo Botschaften abfangen
- Next by Date: Re: Transparentes Bild
- Previous by thread: Transparentes Bild
- Next by thread: Re: Transparentes Bild
- Index(es):
Relevant Pages
|