精易论坛

标题: 类_位图处理的颜色表构建位图24位有bug [打印本页]

作者: tangjiashiertui    时间: 2022-10-13 00:29
标题: 类_位图处理的颜色表构建位图24位有bug
  
判断 (位数 = 24)
计次循环首 (h, y)
计次循环首 (w, x)
位图 = 位图 + 字节集反转 (取字节集左边 (到字节集 (颜色表 [x] [h + 1 - y]), 3))
计次循环尾 ()
如果真 (取字节集长度 (位图) ÷ 4 ≠ 到整数 (取字节集长度 (位图) ÷ 4))
位图 = 位图 + 取空白字节集 ( (1 - 取字节集长度 (位图) ÷ 4 + 到整数 (取字节集长度 (位图) ÷ 4)) × 4)
处理事件 ()
计次循环尾 ()
位图 = { 66, 77 }到字节集 (到整数 (58 + 取字节集长度 (位图))){ 0, 0, 0, 0, 54, 0, 0, 0, 40, 0, 0, 0 }到字节集 (w)到字节集 (h){ 1, 0, 24, 0, 0, 0, 0, 0 }到字节集 (取字节集长度 (位图)) + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } + 位图




代码如上所示,其中 到字节集 (到整数 (58 + 取字节集长度 (位图))) 中的58应该为54。

bmp头的前第3-6字节应该是整个BMP的大小。我发现生成24位的BMP比实际大小到了4。代码后面的{ 0, 0, 0, 0, 54, 0, 0, 0, 40, 0, 0, 0 } 也明确了位图信息偏移量为54,而不是58。
当然如果是我理解有误请指出文件头为58的原因。




作者: shituo    时间: 2022-10-30 18:04
这里的58是指 头文件长度
作者: 项目部004    时间: 2022-10-31 22:46
CopyBitmap、SaveBitmapToImage 例程
https://125.confly.eu.org/forum.php?mod=viewthread&tid=14712380
(出处: 精易论坛)


所有保存BMP格式统一用这个!模块里一大堆重复的,有空再换掉!
作者: tangjiashiertui    时间: 2022-11-1 00:09
shituo 发表于 2022-10-30 18:04
这里的58是指 头文件长度

可以尝试使用“类_位图处理”生成一个24位BMP,再使用PS或者图画板去生成完全一致的的图画,保存到BMP文件,然后查看二进制。绝对是不一样的。




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4