Re: Transparentes Bild



> 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.




.



Relevant Pages

  • Win2K druckt Bitmap, XP nicht !?
    ... außer der Bitmap. ... Ach ja, entwickelt wird unter Win2K. ... Prev by Date: ... Next by Date: ...
    (microsoft.public.de.vc)
  • Re: Frage zu LoadMappedBitmap mit 32Bit Bildern
    ... > Eine 24bit Bitmap hat IMHO keine Palette, wenn ich mich nicht gar ganz ... Die können eine Palette haben, die dient aber nur zur Hilfestellung, ... Prev by Date: ... Next by Date: ...
    (microsoft.public.de.vc)
  • simple Bitmaperstellung
    ... VOID *pvBits; ... Leider kann ich kein Pixel im Bitmap ändern. ... Prev by Date: ... Next by Date: ...
    (microsoft.public.de.vc)
  • Re: require von entferntem host
    ... das wäre er auch ohne BEGIN, da require ja ganz normal zur Laufzeit ... Prev by Date: ... Next by Date: ...
    (de.comp.lang.perl.misc)
  • dvips, fonts in figures, hex-bitstring
    ... HEX-BITSTRING Groesse, die als Bitmap aufgefaßt werden soll. ... Prev by Date: ... Next by Date: ...
    (de.comp.text.tex)