transparente Bilder?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Sibitiger

Betreff: transparente Bilder?

BeitragFr, Sep 24, 2004 20:38
Antworten mit Zitat
Benutzer-Profile anzeigen
HI Leute,
ich hab ein Problem:
Wie kann man geladene Bilder transparent werden lassen(also nicht mit maskcolor sondern ein Bild wo man den Hintergrund durch sieht aber auch die Farbe und evtl. auch die Struktur von dem vorderen Bild erkennt)
Ich denke ihr könnt mir helfen und danke im Voraus...

Sibitiger

BladeRunner

Moderator

BeitragFr, Sep 24, 2004 20:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Auf blitzbase.de gibt es ne routine dazu, ist aber nicht realtimegeeignet (zumindest bei grösseren Bildern nit).
Ansonsten könntest du bei blitz 3d mit sprites was erreichen, dazu mal die Suche benutzen. wurde schon mehrfach abgehandelt.
Viel Erfolg.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

Timo

BeitragSa, Sep 25, 2004 9:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Sbrog und ich hatten auch mal ne Diskussion darüber. Das ist rausgekommen:
https://www.blitzforum.de/view...mp;start=0

und das könnte dir helfen:

eine Lösung mit Readpixelfast Wink

Code: [AUSKLAPPEN]
Graphics 800,600,32,2

Local Alpha#,x,y
Local Neu_Rot,Neu_Gruen,Neu_Blau
Local Neu_cl,Bild1_cl,Bild2_cl ; Farb_Hex Werte

Bild1 = CreateImage(200,200)
Setbuffer Imagebuffer(Bild1)
  Color 0,255,0
  Rect 0,0,200,200
  Lockbuffer
Bild2 = CreateImage(200,200)
Setbuffer Imagebuffer(Bild2)
  Color 0,0,255
  Rect 0,0,200,200
  Lockbuffer
 
Setbuffer Backbuffer()

Repeat
cls
if keydown(203) then alpha# = alpha# - 0.03
If keydown(205) Then alpha# = alpha# + 0.03

If alpha# > 1 then alpha# = 1
If alpha# < 0 then alpha# = 0


Lockbuffer
For y = 0 to 199
  for x = 0 to 199
    Bild1_cl = ReadPixelFast(x,y,Imagebuffer(Bild1))
    Bild2_cl = ReadpixelFast(x,y,IMagebuffer(Bild2))
   
    Neu_Rot =   Int(((Bild1_cl AND $FF0000)/$10000) * Alpha + ((Bild2_cl AND $FF0000)/$10000) * (1 - Alpha))
    Neu_Gruen = Int(((Bild1_cl AND $FF00)/$100) * Alpha + ((Bild2_cl AND $FF00)/$100) * (1 - Alpha))
    Neu_Blau =  Int((Bild1_cl AND $FF) * Alpha + (Bild2_cl AND $FF) * (1 - Alpha))
   
    Neu_cl = $FF000000 + Neu_Rot*$10000 + Neu_Gruen*$100 + Neu_Blau
    WritePixelFast x,y,Neu_cl
  next
next
Unlockbuffer



Text 230,20,"alpha# = " + alpha#
Text 230,40,"Benutze die Pfeiltasten, um den alphawert zu ändern!!"
Flip
Until Keyhit(1)

TheShadow

Moderator

BeitragSa, Sep 25, 2004 11:06
Antworten mit Zitat
Benutzer-Profile anzeigen
quck mal auf blitzbasic.com in toolbax nach alpha-dll
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2

Ninja

BeitragSa, Sep 25, 2004 21:16
Antworten mit Zitat
Benutzer-Profile anzeigen
ich hab die selbe frage vor 1 woche gestellt abe rmir hat man nicht so viele nette antworten gegen...

Merced

BeitragSa, Sep 25, 2004 21:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Das Problem ist dass die manuelle Pixelmethode selbst mir ReadPixelFast und WritePixelfast sehr langsam ist. Auf schnellen Rechnern macht sich dass nicht so bemerkbar aber auf lahmen Kisten kann man schonmeile ein paar Sekunden warten bis was größeres so gemacht ist. Wie schnell ist denn die Alpha-DLL?
Habt ihr das mal versucht?
http://www.starship-battles.de.vu
http://www.venture-interactive.de.vu
 

Kekskiller

BeitragSa, Sep 25, 2004 22:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Antwort auf deine Fragen Wink :
https://www.blitzforum.de/view...b3da#66193
Ist es nicht toll Very Happy ???

TheShadow

Moderator

BeitragSo, Sep 26, 2004 12:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Die DLL ist sehr optimiert in C++ geschrieben worden - ich greife mit der DLL direkt auf Speicher zu und modifiziere die Werte dort - trotzdem ist es zu langsam... und zwar ganz einfach deshalb, weil Grafikkarte nicht für soclhe Zugriffe gedacht ist - es ist kein hardwarebeschleunigter Effekt
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2
 

Sibitiger

BeitragDi, Sep 28, 2004 22:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke, jetzt ist mein Problem gelöst 8)

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group