Buchempfehlung
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Umfassend, aber leicht verständlich führt dieses Buch in die Programmierung von ATMEL AVR Mikrocontrollern ein. [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!

Code-Beispiel

Code-Beispiele » Grafik und Fonts

24bit zu 16bit

Lizenz:Erster Autor:Letzte Bearbeitung:
k. A.MitgliedEternal_Pain 10.09.2007

Diese Funktion wandelt einen 24bit RGB Wert in einen 16bit RGB Wert um.

Function Hrgb (Byval red   As Ubyte, _
               Byval green As Ubyte, _
               Byval blue  As Ubyte) As Ushort

    Return (((red Shr 3) Shl 11)+((green Shr 2) Shl 5)+(blue Shr 3))
End Function

Beispiel:

Dim RGB16 as UShort

RGB16 = HRGB(255,255,255)

?RGB16

sleep

Fuer alles die es gern noch etwas schneller brauchen :o)
Hier noch eine MACRO/ASM Loesung (Danke an Volta)

#MACRO hrgb(red,green,blue,rgb16)
  ASM
    mov al, BYTE PTR [red]
    SHL eax, 5

    mov al, BYTE PTR [green]
    SHL eax, 6

    mov al, BYTE PTR [blue]
    SHR eax, 3

    mov word PTR [rgb16], ax
  END ASM
#ENDMACRO

Beispiel:

DIM red   AS UBYTE
DIM green AS UBYTE
DIM blue  AS UBYTE
DIM rgb16 AS USHORT

red=255
green=255
blue=255
hrgb (red,green,blue,rgb16)
?rgb16

sleep



Zusätzliche Informationen und Funktionen
  • Das Code-Beispiel wurde am 10.09.2007 von MitgliedEternal_Pain angelegt.
  • Die aktuellste Version wurde am 10.09.2007 von MitgliedEternal_Pain gespeichert.
  Bearbeiten Bearbeiten  

  Versionen Versionen