Imagefuncs von ???
ein paar image functionen von mir durch robs alphaplot hab ich jetzt auch alpha blending eingebaut:
[code:1:f4d6976b35]
;-----------------------------------------------
Function DrawTBlock(DTimg,x,y,frame=0,alpha=0)
;v. 2.01
;alpha 0-100 für Transparenz (0=nicht sichtbar,100=völllig sichtbar)
;ansonsten so wie bei DrawBlock
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

DrawBlock 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
;-----------------------------------------------
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
;-----------------------------------------------
Function DrawImageColor(DTimg,x,y,frame,r,g,b,alpha,rr,gg,bb)
;v. 2.10
;WICHTIG: FUNKTIONIERT NUR IM 32 BIT MODUS!!!
;alpha 0-100 für Transparenz der Farbe (0=nicht sichtbar,100=völllig sichtbar)
;r,g,b für die Farbe die darüber gesetzt werden soll
;rr,gg,bb für die MaskColor
;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-1)
For xx = x To x+(imgX-1)
If xx<640 And yy<480 Then imgData(1,xx,yy) = ReadPixelFast(xx,yy)
Next
Next

UnlockBuffer buffer

DrawBlock DTimg,x,y,frame

LockBuffer buffer

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

For yy = y To y+(imgY-1)
For xx = x To x+(imgX-1)
If xx<640 And yy<480 Then
rgb = ImgData(2,xx,yy)
If Not ( ( (rgb And $FF0000)/$10000 )=rr And ( (rgb And $FF00)/$100 )=gg And ( rgb And $FF )=bb ) Then

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
Else
WritePixelFast xx,yy,ImgData(1,xx,yy)
End If
End If
Next
Next

UnlockBuffer buffer

End If
End Function
;-----------------------------------------------
Function DrawSWImage(DTimg,x,y,frame,rr,gg,bb)
;v. 2.10
;WICHTIG: FUNKTIONIERT NUR IM 32 BIT MODUS!!!
;rr,gg,bb für die MaskColor
;ansonsten so wie bei DrawImage
If DTimg <> 0 Then
buffer=GraphicsBuffer()
imgY = ImageHeight(DTimg)
imgX = ImageWidth(DTimg)

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


DrawBlock DTimg,x,y,frame

LockBuffer buffer

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

For yy = y To y+(imgY-1)
For xx = x To x+(imgX-1)
If xx<640 And yy<480 Then
rgb = ImgData(2,xx,yy)
If Not ( ( (rgb And $FF0000)/$10000 )=rr And ( (rgb And $FF00)/$100 )=gg And ( rgb And $FF )=bb ) Then

rgb2 = ImgData(2,xx,yy)

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

If Not (r<1 And g<1 And b<1) Then swrgb=(r+g+b)/3 Else swrgb=0

final_rot = swrgb
final_gruen = swrgb
final_blau = swrgb
WritePixelFast xx,yy, final_rot * $10000 + final_gruen * $100 + final_blau
Else
WritePixelFast xx,yy,ImgData(1,xx,yy)
End If
End If
Next
Next

UnlockBuffer buffer

End If
End Function
;-----------------------------------------------
Function DrawSWBlock(DTimg,x,y,frame=0)
;v. 2.10
;WICHTIG: FUNKTIONIERT NUR IM 32 BIT MODUS!!!
;funktioniert so wie bei DrawBlock
If DTimg <> 0 Then
buffer=GraphicsBuffer()
imgY = ImageHeight(DTimg)
imgX = ImageWidth(DTimg)

DrawBlock DTimg,x,y,frame

LockBuffer buffer

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

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

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

swrgb=(r+g+b)/3

final_rot = swrgb
final_gruen = swrgb
final_blau = swrgb
WritePixelFast xx,yy, final_rot * $10000 + final_gruen * $100 + final_blau
End If
Next
Next

UnlockBuffer buffer

End If
End Function
;-----------------------------------------------
Function DrawNImage(DTimg,x,y,frame,rr,gg,bb)
;v. 2.10
;WICHTIG: FUNKTIONIERT NUR IM 32 BIT MODUS!!!
;rr,gg,bb für die MaskColor
;ansonsten so wie bei DrawImage
If DTimg <> 0 Then
buffer=GraphicsBuffer()
imgY = ImageHeight(DTimg)
imgX = ImageWidth(DTimg)

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


DrawBlock DTimg,x,y,frame

LockBuffer buffer

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

For yy = y To y+(imgY-1)
For xx = x To x+(imgX-1)
If xx<640 And yy<480 Then
rgb = ImgData(2,xx,yy)
If Not ( ( (rgb And $FF0000)/$10000 )=rr And ( (rgb And $FF00)/$100 )=gg And ( rgb And $FF )=bb ) Then

rgb2 = ImgData(2,xx,yy)

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

final_rot = 255-r
final_gruen = 255-g
final_blau = 255-b
WritePixelFast xx,yy, final_rot * $10000 + final_gruen * $100 + final_blau
Else
WritePixelFast xx,yy,ImgData(1,xx,yy)
End If
End If
Next
Next

UnlockBuffer buffer

End If
End Function
;-----------------------------------------------
Function DrawNBlock(DTimg,x,y,frame=0)
;v. 2.10
;WICHTIG: FUNKTIONIERT NUR IM 32 BIT MODUS!!!
;funktioniert so wie bei DrawBlock
If DTimg <> 0 Then
buffer=GraphicsBuffer()
imgY = ImageHeight(DTimg)
imgX = ImageWidth(DTimg)

DrawBlock DTimg,x,y,frame

LockBuffer buffer

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

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

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

final_rot = 255-r
final_gruen = 255-g
final_blau = 255-b
WritePixelFast xx,yy, final_rot * $10000 + final_gruen * $100 + final_blau
End If
Next
Next

UnlockBuffer buffer

End If
End Function
[/code:1:f4d6976b35]

hoffe ihr könnt sie gebrauchen.
leider gehen die meisten nur im32 bit modus :( echt toll für 16 bitler... 8)
:mrgreen:
===
von ???
Kannst du mal vor die Funktionen für alle Funktionen ein oder mehrere Beispiele coden? Ich und ich glaube alle anderen haben bestimmt nicht viel Lust sich erst über die exakte Anwendung der Funktionen im Klaren zu werden und eigene Testbefehle zu schreiben (und mit den ganzen Parametern weiss man nicht so genau, was die besten Beispiele für das Testen sind).

Merci! Ich hoffe es macht nicht allzuviel Umstände... :roll:



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