![]() |
bitmap dursichtig zeichnen
ich möchte mit openGL ein bitmap zeichnen, das einen weißen hintergrund hat, den ich aber nicht zeichnen möchte. wie kann ich das machen?
|
Re: bitmap dursichtig zeichnen
|
Re: bitmap dursichtig zeichnen
ok, ich hab mir das durchgelesen
vielleicht hab ich da übersehen, aber ich hab da nix gefunden, was mein problem betrifft: ich muss nicht das ganze bild 'verdurchsichtigen', ich möchte, dass z.b. die farbe clWhite nicht gezeichnet wird, aber alle anderen farben schon! |
Re: bitmap dursichtig zeichnen
Hi,
das ganze mußt du via AlphaBlending lösen. Wenn du dich bisher allerdings nicht groß um das laden von Texturen geschert hast (sprich, immer fremd-libs benutzt hast), würde ich dir empfehlen auch dafür eine bereits existierende Unit zu benutzen ;) z.B. die von mir geschriebene Texture-Unit: ![]() Wenn du fragen zur benutzung hast, sag bescheid :) Au'revoir, Aya~ |
Re: bitmap dursichtig zeichnen
Also ich hab das mit der glbmp gemach :
vorher bei uses noch glbmp und im code dann einfach:
Delphi-Quellcode:
bei der dritten zeile muss eine bmp angegeben sein die nur schwarz,grau und weiß ist und die gleiche Maße wie die bmp in der zweiten zeile hat
textur := tglbmp.Create;
textur.LoadImage(bitmappath); textur.AddAlpha(transparencybmppath); textur.GenTexture; alles was in der b/w bmp schwarz ist wrd nicht gezeichnet , desto weißer desto weniger transparenz . |
Re: bitmap dursichtig zeichnen
ich weiß nicht, ob ich das was falsch verstanden habe bei den posts, aber ich suche so etwas, wie z.b. bei delphiX in der imagelist das trasparent=true und trasparentColor=clWhite oder so, dass einfach eine bestimmte farbe nicht gezeichnet wird, aber alle anderen voll gezeichnet werden
wenn das schon irgendjemand geschrieben hat, weist mich daraufhin, ich kannst nähmlich nicht finden |
Re: bitmap dursichtig zeichnen
Hi,
Zitat:
Au'revoir, Aya~ |
Re: bitmap dursichtig zeichnen
hab ich probiert:
Ergebnis(derzeitig)=fehler: File not found: 'OpenGL12.dcu' |
Re: bitmap dursichtig zeichnen
Hi,
ja.. die OpenGL12.pas brauchst du schon... *g* Such mal bei Google dannach, sollte kein problem sein die zu finden. ![]() Au'revoir, Aya~ |
Re: bitmap dursichtig zeichnen
ok, soweit klappts (mit den units)
aber durch welche procedure oder wie kann ich das bitmap zeichnen? |
Re: bitmap dursichtig zeichnen
Mh...??
Du kannst nich einfach nen Bitmap zeichnen, du kannst es nur als Textur verwenden. Du mußt also nen Quad erstellen und darauf dein Bitmap als Textur verwenden.. schau dir mal in der kglTextures.pas die beschreibung der Befehle an (ganz oben).. sollte eigentlich verständlich sein :) Au'revoir, Aya~ |
Re: bitmap dursichtig zeichnen
Delphi-Quellcode:
zeichnet die Bitmap und ersetzt alle clWhite Pixels durch clRed.
Canvas.Brush.Color := clRed;
Canvas.BrushCopy(Bounds(), Bitmap, Bounds(), clWhite); Ansonsten schau dir TImageList ggenauer an, und .Masked, .AddMasked. Über's API gibt es MaskBlt(). Gruß Hagen |
Re: bitmap dursichtig zeichnen
Hi,
@Hagen: er möchte das ganze doch mit OpenGL machen ;) Au'revoir, Aya~ |
Re: bitmap dursichtig zeichnen
Shit, stimmt das habe ich überlesen. Ich habe mich schon gewundert warum die Experten nicht auf BrushCopy hingewiesen haben. Naja, lesen sollte man halt können :)
Gruß Hagen |
Re: bitmap dursichtig zeichnen
@aya
ich hab mir die beschreibungen durchgelesen, aber könntest du mir mal ein beispiel-prog schicken? |
Re: bitmap dursichtig zeichnen
Hi,
was klappt denn da nicht? :roll: Du erstellst eine Textur:
Delphi-Quellcode:
dann machst du die farbe Rot transparent:
MyTex:=TTextur.Create('C:\...\bla.jpg');
Delphi-Quellcode:
(Die 4te Zahl ist der AlphaWert für die Farbe - RGBA)
MyTex.SetAlphaColor(255,0,0,0);
und dann kannst du die Textur jederzeit dort verwenden wo du sie brauchst mit:
Delphi-Quellcode:
Natürlich noch AlphaMasking aktivieren davor :)
MyTex.Bind;
Au'revoir, Aya~ |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:57 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz