Weichzeichner

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

 

$tankY

Betreff: Weichzeichner

BeitragDo, Jan 19, 2006 20:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Hab ma so n bissl herumgespielt und diesen kleinen Weichzeichner geschrieben Very Happy . Der ist langsam, deshalb sollte man ihn nur für kleine Bilder verwenden (2k Samplebild braucht bei mir ca 300ms).
So hier is der Quellcode:

Code: [AUSKLAPPEN]

;Weichzeichner von $tanky
;Erstellt am 19,1.06
;Für Blitz+ / B3D (Requestfile$() dürch Bild mit Pfad ersetzen!)

Bild$=RequestFile$("","")

Image=LoadImage(Bild$)

Width=ImageWidth(Image)
Height=ImageHeight(Image)

Graphics Width,Height,32,0

Image=LoadImage(Bild$)

time=MilliSecs()

Dim Clr(7,3)


NewImage=CreateImage(Width,Height)

Buffer1=ImageBuffer(Image)
LockBuffer Buffer1
Buffer2=ImageBuffer(NewImage)
LockBuffer Buffer2

For X=1 To Width-2

   For Y=1 To Height-2

      Clr(0,0)=ReadPixelFast(X-1,Y+1,Buffer1)
      Clr(1,0)=ReadPixelFast(X-1,Y,Buffer1)
      Clr(2,0)=ReadPixelFast(X-1,Y-1,Buffer1)
      Clr(3,0)=ReadPixelFast(X,Y+1,Buffer1)
      Clr(4,0)=ReadPixelFast(X,Y-1,Buffer1)
      Clr(5,0)=ReadPixelFast(X+1,Y+1,Buffer1)
      Clr(6,0)=ReadPixelFast(X+1,Y,Buffer1)
      Clr(7,0)=ReadPixelFast(X+1,Y-1,Buffer1)

      For i=0 To 7

         Clr(i,1)=(Clr(i,0) And $FF0000)/$10000
         Clr(i,2)=(Clr(i,0) And $FF00)/$100
         Clr(i,3)=(Clr(i,0) And $FF)

      Next

      R=(Clr(0,1)+Clr(1,1)+Clr(2,1)+Clr(3,1)+Clr(4,1)+Clr(5,1)+Clr(6,1)+Clr(7,1))/8.
      G=(Clr(0,2)+Clr(1,2)+Clr(2,2)+Clr(3,2)+Clr(4,2)+Clr(5,2)+Clr(6,2)+Clr(7,2))/8.
      B=(Clr(0,3)+Clr(1,3)+Clr(2,3)+Clr(3,3)+Clr(4,3)+Clr(5,3)+Clr(6,3)+Clr(7,3))/8.
      RGB=R*$10000 + G*$100 + B

      WritePixelFast(X,Y,RGB,Buffer2)

   Next

Next

UnlockBuffer Buffer1
UnlockBuffer Buffer2

SetBuffer BackBuffer()

Cls

DrawImage NewImage,0,0

Color 0,255,0
Text 0,0,MilliSecs()-time

Flip

WaitKey

End


Edit: Hab nun Graphics geändert!
  • Zuletzt bearbeitet von $tankY am Sa, Jan 21, 2006 11:32, insgesamt 2-mal bearbeitet
 

Schnuff

BeitragDo, Jan 19, 2006 20:55
Antworten mit Zitat
Benutzer-Profile anzeigen
bei B3D(oder anderen) werden bei dem begriff "Graphics" alle image Dateien Freigegeben!
köntest du den Code(der einfachhalt halber) umformen?

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group