|

楼主 |
发表于 2024-11-17 09:48:14
|
显示全部楼层
广东省广州市
.版本 2
.计次循环首 (高度24 × 行字节数, Y)
.计次循环首 (行字节数, X)
计数 = 计数 + 1
.判断开始 (X ≤ 有效行字节数)
计 = 计 + 1
图像数据32 [计] = 图像数据24 [计数]
.判断开始 (X % 3 = 0)
计 = 计 + 1
图像数据32 [计] = 255
.默认
.判断结束
.默认
.判断结束
.计次循环尾 ()
.计次循环尾 ()
后来修改时画蛇添足了,删除红色的代码就可以,
下面是改进的
.版本 2
.支持库 spec
.子程序 位图_24转32, 字节集, 公开, 返回32位图字节集
.参数 位图数据24, 字节集, , 24位位图数据
.局部变量 位图深度, 整数型
.局部变量 文件大小, 整数型
.局部变量 位图头部大小, 整数型
.局部变量 位图头部, 字节集
.局部变量 图像数据24, 字节集
.局部变量 高度24, 整数型
.局部变量 宽度24, 整数型
.局部变量 图像数据32, 字节集
.局部变量 计次, 整数型
.局部变量 补充字节数, 整数型
.局部变量 Y, 整数型
.局部变量 X, 整数型
.局部变量 数32, 整数型
.局部变量 计, 整数型
.局部变量 行字节数, 整数型
.局部变量 有效行字节数, 整数型
.局部变量 数24, 整数型
.判断开始 (取字节集左边 (位图数据24, 2) = { 66, 77 })
位图深度 = 取字节集内整数 (位图数据24, 28, )
.判断开始 (位图深度 = 24)
文件大小 = 取字节集内整数 (位图数据24, 2, )
位图头部大小 = 取字节集内整数 (位图数据24, 10, )
位图头部 = 取字节集左边 (位图数据24, 位图头部大小)
图像数据24 = 取字节集右边 (位图数据24, 文件大小 - 位图头部大小)
宽度24 = 取字节集内整数 (位图头部, 18, )
高度24 = 取字节集内整数 (位图头部, 22, )
位图头部 = 子字节集替换 (位图头部, { 24 }, { 32 }, 28, )
置字节集内整数 (位图头部, 2, 宽度24 × 高度24 × 4 + 位图头部大小, )
置字节集内整数 (位图头部, 34, 宽度24 × 高度24 × 4, )
.默认
调试输出 (“非24位图文件!!”)
返回 ({ })
.判断结束
.默认
调试输出 (“非位图文件!!”)
返回 ({ })
.判断结束
图像数据32 = 取空白字节集 (宽度24 × 高度24 × 4)
' 24位图每行字节数必需是4的倍数,不足时补充字节
行字节数 = 取字节集长度 (图像数据24) ÷ 高度24
数32 = 1
.变量循环首 (0, 高度24 - 1, 1, Y)
.变量循环首 (1, 宽度24 × 3, 3, X)
数24 = Y × 行字节数 + X
图像数据32 [数32] = 图像数据24 [数24]
图像数据32 [数32 + 1] = 图像数据24 [数24 + 1]
图像数据32 [数32 + 2] = 图像数据24 [数24 + 2]
图像数据32 [数32 + 3] = 255
数32 = 数32 + 4
.变量循环尾 ()
.变量循环尾 ()
返回 (位图头部 + 图像数据32)
|
|