Transparenz - aber wie?

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Te(Y)House

Betreff: Transparenz - aber wie?

BeitragSo, Nov 05, 2006 22:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi Leuz,
ich komme irgendwie net hinter das Geheimniss > Wie kann ich Transparenz
bei Bildern auf möglichst net zu komplizierte weise erzeugen?
Hier mal ein kleines Beispiel wie ich das meine:

user posted image

Danke schonmal für die Hilfe...


Mfg.
Te(Y)House

StepTiger

BeitragSo, Nov 05, 2006 22:23
Antworten mit Zitat
Benutzer-Profile anzeigen
auf unkomplizierte weise? gar nicht

getcolor
color
plot

readpixel
writepixel

readpixelfast
writepixelfast

und etwas Mathe
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.

pixelshooter

BeitragSo, Nov 05, 2006 22:28
Antworten mit Zitat
Benutzer-Profile anzeigen
guck mal ins codearchiv
>> Musikerstellung, Grafik und Design: http://www.pixelshooter.net.tc

Te(Y)House

BeitragSo, Nov 05, 2006 22:40
Antworten mit Zitat
Benutzer-Profile anzeigen
habe nachgesehen... die Lösung im Archiv funtzt zwar... aber irgendwie net so das was ich gesucht habe... ka... gibt es net irgendwie ne DLL dafür?

BladeRunner

Moderator

BeitragSo, Nov 05, 2006 22:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Dafür braucht es keine Dll wenn Du Besitzer von B3D bist, dann kannst du es mit Sprites machen.
Was stört dich an dem Code aus dem Archiv ?
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

PowerProgrammer

BeitragMo, Nov 06, 2006 8:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Wahrscheinlich die Geschwindigkeit Wink
www.xairro.com Alles für Webmaster und Programmierer! Es gibt mehr als bloß einen Counter!

Schranz0r

BeitragMo, Nov 06, 2006 11:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich mach das über die Grafik selber als beispiel



Ein Bild das Blau ist soll halb transperent gemacht werden, dann mach ich das so(Denk dir das in Pixeln 0 = Blau, 1 = Schwarz(Mask auf schwarz!)

01010101010101010101010101010101
10101010101010101010101010101010
01010101010101010101010101010101
10101010101010101010101010101010


Da brauchst du nur ein Zeichenprogramm, dass das kann über Plugins(Filter) oder so...
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!HAUPTSACH et kost VIEL!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

D2006

Administrator

BeitragMo, Nov 06, 2006 12:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Das von Schranzor beschriebene Verhalten kannst du aber imho vergessen, wenn sich die Grafik bewegen soll. Dann flimmert das so eklig, was man wohl nur mit 2px Schritten umgehen kann.
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2

BobrOOney

BeitragSa, Nov 18, 2006 1:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Hilft Dir das weiter?

Dim alphaimage(GraphicsWidth (),GraphicsHeight ())

Function drawalphaimage(pic,x,y,a,mask_r,mask_g,mask_b,heller=0) ;a=0(transp)-100(deckend),mask_x=Farbmaske
If a <= 0 Then Return

SetBuffer ImageBuffer(pic) ;einlesen des Bildes
LockBuffer ImageBuffer(pic)
For scanx = 0 To ImageWidth(pic)-1
For scany= 0 To ImageHeight(pic)-1
alphaimage(scanx,scany)=ReadPixelFast(scanx,scany)
Next
Next
UnlockBuffer ImageBuffer(pic)

SetBuffer BackBuffer() ; auslesen des Hintergrundes und
LockBuffer BackBuffer() ; mischen und malen der neuen Pixel
For scanx = 0 To ImageWidth(pic)-1
For scany= 0 To ImageHeight(pic)-1
rgb2=ReadPixelFast(scanx+x,scany+y)
rbg=(rgb2 And $FF0000)/$10000
gbg=(rgb2 And $FF00)/$100
bbg=rgb2 And $FF
rpic=(alphaimage(scanx,scany) And $FF0000)/$10000
gpic=(alphaimage(scanx,scany) And $FF00)/$100
bpic=alphaimage(scanx,scany) And $FF
If Not rpic = mask_r And gpic = mask_g And bpic = mask_b
rneu=rbg*(1.0-(a/100.0))+rpic*a/100.0
gneu=gbg*(1.0-(a/100.0))+gpic*a/100.0
bneu=bbg*(1.0-(a/100.0))+bpic*a/100.0
rgbneu=255*$1000000 + rneu*$10000 + gneu*$100 + bneu
If rgbneu+heller>255 Then
rbgneu=255
Else
rgbneu=rgbneu+heller
End If
WritePixelFast(scanx+x,scany+y,rgbneu)
EndIf
Next
Next
UnlockBuffer BackBuffer()
End Function


Das Problem ist nur, wenn man das Bild rausbewegt, gibts ne Fehlermeldung. Weiß vielleicht Jemand ne Lösung?
---<< Cool down in Temper City! >>---
http://www.ShadowVision-Soft.com

Lunatix

BeitragSa, Nov 18, 2006 2:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Writepixel/fast geht nicht über den screen raus Rolling Eyes

Ausserdem is das für'n arsch was ihr hier macht, da Blitz3D sprites hat -.-
sucht mal nach 2D²3D - google, forensuche, http://www.unrealsoftware.de

mfg JP
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...

Triton

BeitragSa, Nov 18, 2006 17:18
Antworten mit Zitat
Benutzer-Profile anzeigen
user posted image

Schau doch mal etwas genauer in unser Codearchiv Wink
Coding: silizium-net.de | Portfolio: Triton.ch.vu

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group