Type-Fehler ?
Übersicht

![]() |
AcidRainBetreff: Type-Fehler ? |
![]() Antworten mit Zitat ![]() |
---|---|---|
hehy,
ich machs kurz: ![]() Code: Graphics 800,600,32,2
SetBuffer BackBuffer() mask=1 ;Maske1 initialisieren Type pixel Field pixx,pixy,pixz End Type helldunkel1=LoadImage("breit.bmp") DrawImage helldunkel1,0,0 Flip For i=0 To 799 p.pixel=New pixel LockBuffer BackBuffer() rgb=ReadPixelFast(xp,yp) p\pixx=(rgb And $FF0000)/$10000 p\pixy=(rgb And $FF00)/$100 p\pixz=rgb And $FF UnlockBuffer BackBuffer() xp=xp+1 If xp=799 Then yp=yp+1:xp=0 If yp=599 Then EndIf Next FreeImage helldunkel1 Cls ;Maske2 initialisieren Type pixel2 Field pixx2,pixy2,pixz2 End Type helldunkel2=LoadImage("hoch.bmp") DrawImage helldunkel2,0,0 Flip For o=0 To 449 q.pixel2=New pixel2 LockBuffer BackBuffer() rgb2=ReadPixelFast(xp2,yp2) q\pixx2=(rgb2 And $FF0000)/$10000 q\pixy2=(rgb2 And $FF00)/$100 q\pixz2=rgb2 And $FF UnlockBuffer BackBuffer() xp2=xp2+1 If xp2=799 Then yp2=yp2+1:xp2=0 If yp2=599 Then EndIf Next FreeImage helldunkel2 Cls ;Bilder laden+initialisieren image=LoadImage("1.jpg") Type pixel3 Field pixx3,pixy3,pixz3 End Type If ImageWidth(image)=800 Then DrawImage image,0,0 Flip For u=0 To 799 w.pixel3=New pixel3 LockBuffer BackBuffer() rgb3=ReadPixelFast(xp,yp) w\pixx3=(rgb3 And $FF0000)/$10000 w\pixy3=(rgb3 And $FF00)/$100 w\pixz3=rgb3 And $FF UnlockBuffer BackBuffer() xp3=xp3+1 If xp3=799 Then yp3=yp3+1:xp3=0 If yp3=599 Then EndIf Next FreeImage image Cls mask=1 Else DrawImage image,0,0 Flip For u=0 To 449 w.pixel3=New pixel3 LockBuffer BackBuffer() rgb3=ReadPixelFast(xp3,yp3) w\pixx3=(rgb3 And $FF0000)/$10000 w\pixy3=(rgb3 And $FF00)/$100 w\pixz3=rgb3 And $FF UnlockBuffer BackBuffer() xp3=xp3+1 If xp3=799 Then yp3=yp3+1:xp3=0 If yp3=599 Then EndIf Next FreeImage image Cls mask=2 EndIf ;"Ueberblendungseffekt" berechnen Type pixel4 Field pixx4,pixy4,pixz4 End Type p.pixel = First pixel q.pixel2 = First pixel2 w.pixel3 = First pixel3 v.pixel4 = First pixel4 If mask=1 For h=0 To 479999 v.pixel4=New pixel4 v\pixx4=w\pixx3+p\pixx:If v\pixx4>255 Then v\pixx4=255 v\pixy4=w\pixy3+p\pixy:If v\pixy4>255 Then v\pixy4=255 v\pixz4=w\pixz3+p\pixz:If v\pixz4>255 Then v\pixz4=255 w=After w p=After p Next EndIf While Not KeyHit(1) Wend End Fehler:"Object does not exist" Das Problem tritt in dem "If mask=1 Then" Block auf-wenn ich die After-befehle lösche funktioniert es. Ich will ein Programm schreiben,dass erst ein schwarzes bild mit weißer schrift in einem type feld speichert(rgb-werte) und mit diese daten dann zum hintergrundbild dazuaddiert,sodass ein "alphaeffekt" erzeugt wird.Der letzte Block sollte eigentlich dieses dazuaddieren erledigen..tja ![]() |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
das wird sowieso nicht funktionieren.
Du kannst nicht 500'000 Type Instanzen einfach ma so erzeugen. Das wird sehr langsam werden wegen dem "overhead" Wenn du soviele Pixel speichern willst nimm besser einen Array (x,3) in diesem falle wobei x einfach die anzahl einträge sind |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
AcidRain |
![]() Antworten mit Zitat ![]() |
---|---|---|
mh...ich bin jetzt auf dim umgestiegen-das funktioniert-nur ist es extrem langsam-ich mache das bisher so:
1)farbwerte der "aufhellungsvorlage" in ein dim feld übertragen 2)farbwerte des bestimmten bildes in ein dim feld übertragen 3)farbwerte addieren 4)mit writepixelfast mit den berechnetenbildwerten pixel für pixel ein neues bild erstellen gibt es eine möglichkeint,dies zu beschleunigen?? Ich hab das ganze sogar schon 3d mit sprites verucht,da gab es jedoch probleme mit der qualität(schrift"überblendete" zu stark bei hellem hintergrund,etwas unschärfer usw...) so ist es mit der 3d variante: ![]() so soll es sein: ![]() hat jemand eventuel einen lösungsvorschlag für dieses problem ? |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mein Vorschlag:
Mache das ganze in 3D und beachte folgendes: - verschiebe die Textur um 0.5 (0.5/Bildschirmbreite) nach links und oben oder die UV-Koordinaten um 0.5 Pixel nach rechts und unten. Dann müsste die Schärfe genau auf ein Pixel passen. Allerdings wirst du dann ein Rand mit einem Pixel dicke rechts und unten vermissen. - Mache das ganze mit LoadTexture 2, EntityFX 1+2+8+16 und TextureBlend 2. Dann sollten die hellen Stellen behoben sein. |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group