|
- .版本 2
- .支持库 BmpOperate
- .支持库 spec
- .程序集 程序集1
- .子程序 _启动子程序, 整数型, , 请在本子程序中放置易模块初始化代码
- _临时子程序 () ' 在初始化代码执行完毕后调用测试代码
- 返回 (0) ' 可以根据您的需要返回任意数值
- .子程序 _临时子程序
- .局部变量 位图, 位图
- ' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中。 ***注意不要修改本子程序的名称、参数及返回值类型。
- 位图.载入文件 (“in.bmp”)
- 位图二值化 (位图, &二值化算法)
- 写到文件 (“out.bmp”, 位图.取位图数据 ())
- .子程序 二值化算法, 逻辑型
- .参数 颜色值, 整数型
- .局部变量 R, 字节型
- .局部变量 G, 字节型
- .局部变量 B, 字节型
- R = 取红色值 (颜色值)
- G = 取绿色值 (颜色值)
- B = 取蓝色值 (颜色值)
- 返回 ((R + G + B) ÷ 3 ≥ 192)
- .子程序 位图二值化, 逻辑型, 公开, 将位图使用自定义算法转换成单色位图,成功返回真,失败返回假
- .参数 位图, 位图, 参考
- .参数 二值化算法, 子程序指针, , 提供一个整数型参数:颜色值 返回逻辑型 (真为白色,假为黑色)
- .局部变量 XX, 整数型
- .局部变量 YY, 整数型
- .局部变量 X, 整数型
- .局部变量 Y, 整数型
- .局部变量 RGB, 整数型
- .局部变量 二值, 逻辑型
- XX = 位图.取宽度 () - 1
- YY = 位图.取高度 () - 1
- .如果真 (XX < 0 或 YY < 0 或 位图.取错误信息 () ≠ “”)
- 返回 (假)
- .如果真结束
- .变量循环首 (0, XX, 1, X)
- .变量循环首 (0, YY, 1, Y)
- RGB = 位图.取某点颜色 (X, Y)
- .判断开始 (RGB = -1)
- 返回 (假)
- .判断 (调用子程序 (二值化算法, , 二值, RGB) = 假)
- 返回 (假)
- .判断 (位图.置某点颜色 (X, Y, 选择 (二值, #白色, #黑色)) = 假)
- 返回 (假)
- .默认
- .判断结束
- .变量循环尾 ()
- .变量循环尾 ()
- 位图 = 位图.转换位深度 (1)
- 返回 (位图.取错误信息 () = “”)
- .子程序 取红色值, 字节型, , 取颜色的红色值
- .参数 颜色值, 整数型
- 返回 (到字节 (位与 (颜色值, 255)))
- .子程序 取绿色值, 字节型, , 取颜色的绿色值
- .参数 颜色值, 整数型
- 返回 (到字节 (右移 (位与 (颜色值, 65280), 8)))
- .子程序 取蓝色值, 字节型, , 取颜色的蓝色值
- .参数 颜色值, 整数型
- 返回 (到字节 (右移 (位与 (颜色值, 16711680), 16)))
复制代码 |
|