diff options
Diffstat (limited to 'apps/plugins/lua/include_lua')
| -rw-r--r-- | apps/plugins/lua/include_lua/image.lua | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/apps/plugins/lua/include_lua/image.lua b/apps/plugins/lua/include_lua/image.lua index c30e8ab..71c6c46 100644 --- a/apps/plugins/lua/include_lua/image.lua +++ b/apps/plugins/lua/include_lua/image.lua @@ -235,9 +235,12 @@ local _img = {} do elseif depth <= 16 then bpp = 16 bypl = (w * 2 + 3) - else + elseif depth <= 24 then bpp = 24 bypl = (w * 3 + 3) + else + bpp = 32 + bypl = (w * 4 + 3) end local linebytes = bit.band(bypl, bit.bnot(3)) @@ -294,12 +297,21 @@ local _img = {} do bmpheader[#bmpheader + 1] = bmp_color_mix(0xFFFFFF, 0, 2, 3) bmpheader[#bmpheader + 1] = bmp_color(0x0) elseif depth == 16 then - -- red bitfield mask - bmpheader[#bmpheader + 1] = s_bytesLE(32, 0x0000F800) - -- green bitfield mask - bmpheader[#bmpheader + 1] = s_bytesLE(32, 0x000007E0) - -- blue bitfield mask - bmpheader[#bmpheader + 1] = s_bytesLE(32, 0x0000001F) + if format == 565 then + -- red bitfield mask + bmpheader[#bmpheader + 1] = s_bytesLE(32, 0x0000F800) + -- green bitfield mask + bmpheader[#bmpheader + 1] = s_bytesLE(32, 0x000007E0) + -- blue bitfield mask + bmpheader[#bmpheader + 1] = s_bytesLE(32, 0x0000001F) + else -- 555 + -- red bitfield mask + bmpheader[#bmpheader + 1] = s_bytesLE(32, 0x00007C00) + -- green bitfield mask + bmpheader[#bmpheader + 1] = s_bytesLE(32, 0x000003E0) + -- blue bitfield mask + bmpheader[#bmpheader + 1] = s_bytesLE(32, 0x0000001F) + end end dump_fbuffer(0) -- write the header to the file now |