硬汉嵌入式论坛

 找回密码
 立即注册
查看: 491|回复: 0
收起左侧

[Lua] 简易的LUA实现RGB565和BGR565颜色互转

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106757
QQ
发表于 2023-11-18 08:41:04 | 显示全部楼层 |阅读模式



LUA实现代码,效率不够高,不过可以使用。

[C] 纯文本查看 复制代码
function SwitchStr(stryy, len)
	local r
	local g
	local b
    local str44
    local str55  
    local byte0
    local byte1
    local pixel
    local Color16
	local i

    str44=""

	print("转换数据中")

    for i=1, len//2, 1 do
        byte0, byte1 = string.byte(stryy,  2*i-1, 2*i)
        pixel = byte1*256+byte0
        r = ((pixel & 0xF800) >> 11)		
		g = ((pixel & 0x07E0) >> 5)
		b = (pixel & 0x001F)

        --16 bpp Bitmaps in windows are 555: rrrrrgggggbbbbb
        --r = ( r * 31 + 127) // 255
        --g = ( g * 31 + 127) // 255
        --b = ( b * 31 + 127) // 255

        Color16 = (b << 11) | (g << 5) | r

        byte1 = Color16//256
        byte0 = Color16%256

        str55 = string.format("%c%c", byte0, byte1)

        str44 = str44..str55
    end
	
	return str44

end


RGB效果:

13.png

BGR效果:

12.png


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-4 16:07 , Processed in 0.279756 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表