|
- .版本 2
- .支持库 BmpOperate
- .程序集 程序集1
- .子程序 _启动子程序, 整数型, , 请在本子程序中放置易模块初始化代码
- _临时子程序 () ' 在初始化代码执行完毕后调用测试代码
- 返回 (0) ' 可以根据您的需要返回任意数值
- .子程序 _临时子程序
- .局部变量 位图, 位图
- .局部变量 位图2, 位图
- 位图.载入文件 (“1.bmp”)
- 写到文件 (“1.bin”, 位图到字节集裸数据 (位图))
- 写到文件 (“1.bin”, 位图到字节集裸数据 (位图))
- 位图2 = 字节集裸数据到位图 (读入文件 (“1.bin”), 64, 64)
- 写到文件 (“2.bmp”, 位图2.取位图数据 ())
- .子程序 位图到字节集裸数据, 字节集, 公开, 将位图点阵数据提取成字节集裸数据,失败返回空字节集
- .参数 位图, 位图, , 仅支持24位位图转换
- .局部变量 宽, 整数型
- .局部变量 高, 整数型
- .局部变量 返回值, 字节集
- .局部变量 Y, 整数型
- .局部变量 X, 整数型
- .局部变量 Z, 整数型
- .局部变量 颜色值, 整数型
- 宽 = 位图.取宽度 ()
- 高 = 位图.取高度 ()
- .如果真 (宽 ≤ 0 或 高 ≤ 0)
- 返回 ({ })
- .如果真结束
- 返回值 = 取空白字节集 (宽 × 高 × 3)
- .变量循环首 (0, 高 - 1, 1, Y)
- .变量循环首 (0, 宽 - 1, 1, X)
- 颜色值 = 位图.取某点颜色 (X, Y)
- Z = Z + 1
- 返回值 [Z] = 取红色值 (颜色值)
- Z = Z + 1
- 返回值 [Z] = 取绿色值 (颜色值)
- Z = Z + 1
- 返回值 [Z] = 取蓝色值 (颜色值)
- .变量循环尾 ()
- .变量循环尾 ()
- 返回 (返回值)
- .子程序 字节集裸数据到位图, 位图, 公开, 将字节集裸数据还原成24位位图,失败返回空位图
- .参数 裸数据, 字节集, , 裸数据字节=宽*高*3 不匹配将失败
- .参数 宽, 整数型, , 裸数据不包括位图宽高数据,需要手动指定
- .参数 高, 整数型, , 错误的宽高会造成图片还原错误
- .局部变量 返回值, 位图
- .局部变量 尺寸, 整数型
- .局部变量 X, 整数型
- .局部变量 Y, 整数型
- .局部变量 Z, 整数型
- 尺寸 = 取字节集长度 (裸数据)
- .判断开始 (宽 ≤ 0 或 高 ≤ 0 或 尺寸 ≠ 宽 × 高 × 3)
- 返回 (返回值)
- .判断 (返回值.创建 (宽, 高, 24, ) = 假)
- 返回 (返回值)
- .默认
- .判断结束
- .变量循环首 (0, 高 - 1, 1, Y)
- .变量循环首 (0, 宽 - 1, 1, X)
- 返回值.置某点颜色 (X, Y, 取颜色值 (裸数据 [Z + 1], 裸数据 [Z + 2], 裸数据 [Z + 3]))
- Z = Z + 3
- .变量循环尾 ()
- .变量循环尾 ()
- 返回 (返回值)
- .子程序 取红色值, 字节型
- .参数 颜色值, 整数型
- 置入代码 ({ 139, 69, 8, 37, 255, 0, 0, 0, 201, 194, 4, 0 })
- ' mov eax,[ebp+8]
- ' and eax,255
- ' leave
- ' retn 4
- 返回 (0)
- .子程序 取绿色值, 字节型
- .参数 颜色值, 整数型
- 置入代码 ({ 139, 69, 8, 193, 232, 8, 37, 255, 0, 0, 0, 201, 194, 4, 0 })
- ' mov eax,[ebp+8]
- ' shr eax,8
- ' and eax,255
- ' leave
- ' retn 4
- 返回 (0)
- .子程序 取蓝色值, 字节型
- .参数 颜色值, 整数型
- 置入代码 ({ 139, 69, 8, 193, 232, 16, 37, 255, 0, 0, 0, 201, 194, 4, 0 })
- ' mov eax,[ebp+8]
- ' shr eax,16
- ' and eax,255
- ' leave
- ' retn 4
- 返回 (0)
复制代码 |
|