|
本帖最后由 CNWTEPRG 于 2021-2-17 09:50 编辑
- .版本 2
- .支持库 BmpOperate
- .程序集 程序集1
- .子程序 _启动子程序, 整数型, , 请在本子程序中放置易模块初始化代码
- _临时子程序 () ' 在初始化代码执行完毕后调用测试代码
- 返回 (0) ' 可以根据您的需要返回任意数值
- .子程序 _临时子程序
- .局部变量 位图, 位图
- .局部变量 输出, 位图, , "0"
- .局部变量 计数, 整数型
- .如果真 (位图.载入文件 (“in.bmp”) = 假)
- 信息框 (“文件 in.bmp 无法载入,请确定文件是否存在,格式是否正确。”, 0, , )
- 结束 ()
- .如果真结束
- 检查 (位图_任意宫格切割 (位图, 3, 3, 输出))
- .计次循环首 (取数组成员数 (输出), 计数)
- 写到文件 (到文本 (计数) + “.bmp”, 输出 [计数].取位图数据 ())
- .计次循环尾 ()
- .子程序 位图_任意宫格切割, 逻辑型, 公开
- .参数 欲切割位图, 位图
- .参数 水平宫格, 整数型, , 图像的宽度必须能与该值整除
- .参数 垂直宫格, 整数型, , 图像的高度必须能与该值整除
- .参数 输出, 位图, 数组, 切割后的位图通过此数组传出
- .局部变量 宽度, 整数型
- .局部变量 高度, 整数型
- .局部变量 水平切, 位图, , "0"
- .局部变量 垂直切, 位图, , "0"
- .局部变量 垂直索引, 整数型
- .局部变量 水平索引, 整数型
- 宽度 = 欲切割位图.取宽度 ()
- 高度 = 欲切割位图.取高度 ()
- 清除数组 (输出)
- .如果真 (水平宫格 = 0 或 垂直宫格 = 0 或 宽度 % 水平宫格 ≠ 0 或 高度 % 垂直宫格 ≠ 0)
- 返回 (假)
- .如果真结束
- .如果真 (位图_竖切横刀 (欲切割位图, 垂直宫格, 水平切) = 假)
- 返回 (假)
- .如果真结束
- .计次循环首 (垂直宫格, 垂直索引)
- .如果真 (位图_横切竖刀 (水平切 [垂直索引], 水平宫格, 垂直切) = 假)
- 返回 (假)
- .如果真结束
- .计次循环首 (水平宫格, 水平索引)
- 加入成员 (输出, 垂直切 [水平索引])
- .计次循环尾 ()
- .计次循环尾 ()
- 返回 (真)
- .子程序 位图_横切竖刀, 逻辑型
- .参数 位图, 位图
- .参数 数量, 整数型, , 图像的宽度必须能与该值整除
- .参数 输出, 位图, 参考 数组
- .局部变量 高度, 整数型
- .局部变量 宽度, 整数型
- .局部变量 子宽, 整数型
- .局部变量 位深度, 整数型
- .局部变量 计数, 整数型
- .局部变量 X, 整数型
- .局部变量 Y, 整数型
- 宽度 = 位图.取宽度 ()
- 高度 = 位图.取高度 ()
- 位深度 = 位图.取位深度 ()
- .如果真 (数量 = 0 或 宽度 % 数量 ≠ 0)
- 返回 (假)
- .如果真结束
- 子宽 = 宽度 ÷ 数量
- 重定义数组 (输出, 假, 数量)
- .计次循环首 (数量, 计数)
- .如果真 (输出 [计数].创建 (子宽, 高度, 位深度, #白色) = 假)
- 返回 (假)
- .如果真结束
- .变量循环首 (0, 子宽 - 1, 1, X)
- .变量循环首 (0, 高度 - 1, 1, Y)
- .如果真 (输出 [计数].置某点颜色 (X, Y, 位图.取某点颜色 (X + 子宽 × (计数 - 1), Y)) = 假)
- 返回 (假)
- .如果真结束
- .变量循环尾 ()
- .变量循环尾 ()
- .计次循环尾 ()
- 返回 (真)
- .子程序 位图_竖切横刀, 逻辑型
- .参数 位图, 位图
- .参数 数量, 整数型, , 图像的宽度必须能与该值整除
- .参数 输出, 位图, 参考 数组
- .局部变量 宽度, 整数型
- .局部变量 高度, 整数型
- .局部变量 子高, 整数型
- .局部变量 位深度, 整数型
- .局部变量 计数, 整数型
- .局部变量 X, 整数型
- .局部变量 Y, 整数型
- 宽度 = 位图.取宽度 ()
- 高度 = 位图.取高度 ()
- 位深度 = 位图.取位深度 ()
- .如果真 (高度 % 数量 ≠ 0)
- 返回 (假)
- .如果真结束
- 子高 = 高度 ÷ 数量
- 重定义数组 (输出, 假, 数量)
- .计次循环首 (数量, 计数)
- .如果真 (输出 [计数].创建 (宽度, 子高, 位深度, #白色) = 假)
- 返回 (假)
- .如果真结束
- .变量循环首 (0, 宽度 - 1, 1, X)
- .变量循环首 (0, 子高 - 1, 1, Y)
- .如果真 (输出 [计数].置某点颜色 (X, Y, 位图.取某点颜色 (X, Y + 子高 × (计数 - 1))) = 假)
- 返回 (假)
- .如果真结束
- .变量循环尾 ()
- .变量循环尾 ()
- .计次循环尾 ()
- 返回 (真)
复制代码 |
|