stimmt von ???
das stimmt ja das das nicht überschritten werden darf und das dann alles schrott geht. Hatte ich zuerst bei meiner alpha blending func auch. Habs denn durch normales alphablending ersetzt:
[code:1:222842c4bc]
Function DrawTImage(DTimg,x,y,frame=0,alpha=0)
;v. 2.10
;alpha 0-100 für Transparenz (0=nicht sichtbar,100=völllig sichtbar)
;ansonsten so wie bei DrawImage
If DTimg <> 0 Then
buffer=GraphicsBuffer()
imgY = ImageHeight(DTimg)
imgX = ImageWidth(DTimg)

s6=2

If s<> 1 Then modeS=3
If s=1 Then modeS=1:s3=5

If s = 1 Then modeS=2:s3=3

If modeS=2 Then s5=1:s4=s3:s6=s3+1
If modeS=3 Then s5=1:s4=1:s6=2

LockBuffer buffer

For yy = y To y+imgY
For xx = x To x+imgX
If xx<640 And yy<480 Then imgData(1,xx,yy) = ReadPixelFast(xx,yy)
Next
Next

UnlockBuffer buffer

DrawImage DTimg,x,y,frame

LockBuffer buffer

For yy = y To y+imgY
For xx = x To x+imgX
If xx<640 And yy<480 Then imgData(2,xx,yy) = ReadPixelFast(xx,yy)
Next
Next

For yy = y To y+imgY
For xx = x To x+imgX
If xx<640 And yy<480 Then
rgb = ImgData(1,xx,yy)

rgb2 = ImgData(2,xx,yy)

r = (rgb2 And $FF0000)/$10000
g = (rgb2 And $FF00)/$100
b = rgb2 And $FF

read_rot = (rgb And $FF0000)/$10000
read_gruen = (rgb And $FF00)/$100
read_blau = rgb And $FF

final_rot = read_rot + (alpha * (r - read_rot) / 100)
final_gruen = read_gruen + (alpha * (g - read_gruen) / 100)
final_blau = read_blau + (alpha * (b - read_blau) / 100)

WritePixelFast xx,yy, final_rot * $10000 + final_gruen * $100 + final_blau

End If
Next
Next

UnlockBuffer buffer

End If
End Function
[/code:1:222842c4bc]

hör grad Rammstein. RAMMSTEIN!!!! :mrgreen:
===
von ???
Sone ähnliche Funktion (bzw. tonnenweise solcher Funktionen (die anderen, die das Forum früher oft besucht haben, wissen bescheid)) habe ich auch früher geschrieben. Auch immer mit Rausfiltern der Farbkanäle nach ROT, GRÜN und BLAU, danach Zusammenmixen mit den neuen Farbinformationen und dann wieder zusammenkleben und ausgeben. Das ist auch die "natürliche" Vorgehensweise, aber dauert ewig, damit habe ich früher schon gekämpft - der Computer hat meistens bzw. immer gewonnen. Das Besondere an meinem Code ist ja eigentlich nur, dass ich blindlinks die gesamten Formeln rausgeworfen habe, und somit keine Rechenzeit mehr ansteht. :)

Ein kleiner Tipp: Du brauchst den Buffer nicht auszulesen, wenn du ihn fixieren willst (Buffer = GraphicsBuffer() : LockBuffer Buffer : UnlockBuffer Buffer) - du kannst das alles abkürzen durch "LockBuffer()" und "UnlockBuffer()", spart Rechen- und Tipparbeit in geringem Maße ;) :D
===
von ???
das geht... :?: coooooooooooooooooooooooooooooool.... lol 8)



Suche:
(unterstützt mySQL Wildcards ala %)
Titel:
Text:
Autor: