transparente Bilder?
Übersicht

SibitigerBetreff: transparente Bilder? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 ![]() 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) |
||
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
quck mal auf blitzbasic.com in toolbax nach alpha-dll | ||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
![]() |
Ninja |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich hab die selbe frage vor 1 woche gestellt abe rmir hat man nicht so viele nette antworten gegen... | ||
![]() |
Merced |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Die Antwort auf deine Fragen ![]() https://www.blitzforum.de/view...b3da#66193 Ist es nicht toll ![]() |
||
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke, jetzt ist mein Problem gelöst 8) | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group