VB编写RGB565转RGB24

来源:百度知道 编辑:UC知道 时间:2024/05/26 03:43:59
请问怎样用VB编一个函数实现RGB565与RGB24/RGB888之间的转换?
谢谢
或者用什么API,请详细说明一下

Function RGB565toRGB24(RGB565 As Integer) As Long
Dim RGB As Long
Dim R As Long, G As Long, B As Long
If RGB565 < 0 Then RGB = CLng(RGB565) + 65536 Else RGB = CLng(RGB565)
R = Int(RGB / 2048) / 31 * 255
G = (Int(RGB / 32) Mod 64) / 63 * 255
B = (RGB Mod 32) / 31 * 255
RGB565toRGB24 = R + G * 256 + B * 65536
End Function

Function RGB24toRGB565(RGB24 As Long) As Integer
Dim R As Long, G As Long, B As Long
Dim RGB As Long
R = (RGB24 Mod 256) / 255 * 31
G = (Int(RGB24 / 256) Mod 256) / 255 * 63
B = Int(RGB24 / 65536) / 255 * 31
RGB = R * 2048 + G * 32 + B
If RGB < 32768 Then RGB24toRGB565 = CInt(RGB) Else RGB24toRGB565 = CInt(RGB - 65536)
End Function