Buchempfehlung
Windows-Programmierung. Das Entwicklerhandbuch zur WIN32-API
Windows-Programmierung. Das Entwicklerhandbuch zur WIN32-API
"Der" Petzold, das über 1000 Seiten starke Standardwerk zum Win32-API - besonders nützlich u. a. bei der GUI-Programmierung in FreeBASIC! [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

Referenz - CUSTOM

Referenz-Navigation

 

Syntax: { PUT | DRAW STRING } [Puffer, ] [STEP] (x, y), [ weitere Angaben ... ], CUSTOM, blender [, parameter]
Typ: Schlüsselwort
Kategorie: Grafik

CUSTOM ist ein Schlüsselwort, das im Zusammenhang mit BefehlsreferenzeintragPUT (Grafik) und BefehlsreferenzeintragDRAW STRING eingesetzt wird.

Durch CUSTOM wird vor Ausgabe jedes einzelnen Pixels die BefehlsreferenzeintragFUNCTION 'blender' aufgerufen, um zu errechnen, in welcher Farbe das Pixel ausgegeben werden soll.
Diese Funktion wird für jedes neu zu zeichnende Pixel aufgerufen; die Farbe wird jedes mal neu berechnet. Achten Sie beim Einsatz dieses Aktionsworts darauf, dass die Ausführungsgeschwindigkeit unter aufwändigen Berechnungen leiden wird!

Beispiel:

Function dither(ByVal quellpixel As ULong, ByVal zielpixel As ULong, ByVal parameter As Any Ptr) As ULong
  ' gibt zufallsbedingt entweder das Pixel der Bildquelle oder des Hintergrunds zurück
  Dim grenzwert As Single = 0.5
  If parameter <> 0 Then grenzwert = *CPtr(Single Ptr, parameter)

  If Rnd() < grenzwert Then
    Return quellpixel
  Else
    Return zielpixel
  End If
End Function

Dim img As Any Ptr, grenzwert As Single

' Bildschirm setzen
ScreenRes 320, 200, 16, 2
ScreenSet 0, 1

' Bild erzeugen
img = ImageCreate(32, 32)
Line img, ( 0,  0)-(15,  15), RGB(255,   0,   0), bf
Line img, (16,  0)-(31,  15), RGB(  0,   0, 255), bf
Line img, ( 0, 16)-(15,  31), RGB(  0, 255,   0), bf
Line img, (16, 16)-(31,  31), RGB(255,   0, 255), bf

' Bild mit verschiedenen Dither-Werten ausgeben
Do Until Len(Inkey)
  Cls

  grenzwert = 0.2
  Put ( 80 - 16, 100 - 16), img, Custom, @dither, @grenzwert

  ' Standardwert = 0.5
  Put (160 - 16, 100 - 16), img, Custom, @dither

  grenzwert = 0.8
  Put (240 - 16, 100 - 16), img, Custom, @dither, @grenzwert

  ScreenCopy
  Sleep 25
Loop

' Speicher freigeben
ImageDestroy img

Unterschiede zu QB: neu in FreeBASIC

Unterschiede zu früheren Versionen von FreeBASIC:

Siehe auch:
BefehlsreferenzeintragPUT (Grafik), BefehlsreferenzeintragDRAW STRING, BefehlsreferenzeintragSCREENRES, BefehlsreferenzeintragAND (Methode), BefehlsreferenzeintragOR (Methode), BefehlsreferenzeintragXOR (Methode), BefehlsreferenzeintragPSET (Methode), BefehlsreferenzeintragPRESET (Methode), BefehlsreferenzeintragADD, BefehlsreferenzeintragALPHA, BefehlsreferenzeintragTRANS, BefehlsreferenzeintragGrafik


Zusätzliche Informationen und Funktionen
  • Der Referenzeintrag wurde am 07.07.2007 von RedakteurJojo angelegt.
  • Die aktuellste Version wurde am 27.05.2024 von Redakteurnemored gespeichert.
  Versionen Versionen