|
- .版本 2
- .子程序 图片_拼接1, 字节集, 公开, 两张图片拼接为一张,支持上下拼接和左右拼接,图片自动居中
- .参数 图片1, 字节集, , 图片文件的路径数组
- .参数 图片2, 字节集
- .参数 拼接方式, 逻辑型, , 上下拼接传入:真 左右拼接传入:假
- .参数 合成底色, 整数型, 可空, 默认白底
- .局部变量 _图片1, 字节集
- .局部变量 _图片2, 字节集
- .局部变量 局_总位图, 类_位图操作
- .局部变量 局_单位图, 类_位图操作
- .局部变量 局_宽度, 整数型
- .局部变量 局_高度, 整数型
- .局部变量 局_拼接结果, 字节集
- .局部变量 y, 整数型
- .局部变量 x, 整数型
- .局部变量 局_左边, 整数型
- .局部变量 局_顶边, 整数型
- 图片_转换 (图片1, 1, , _图片1)
- 图片_转换 (图片2, 1, , _图片2)
- .如果真 (合成底色 = 0)
- 合成底色 = #浅灰
- .如果真结束
- .如果 (拼接方式)
- ' 上下拼接取最宽宽度
- 局_宽度 = 图片_取宽度 (_图片1)
- .如果真 (局_宽度 < 图片_取宽度 (_图片2))
- 局_宽度 = 图片_取宽度 (_图片2)
- .如果真结束
- ' 上下拼接取两张图片高度和
- 局_高度 = 图片_取高度 (_图片1) + 图片_取高度 (_图片2)
- 局_总位图.创建空白位图 (局_宽度, 局_高度, 32)
- .计次循环首 (局_宽度, x)
- .计次循环首 (局_高度, y)
- 局_总位图.置某点颜色 (x - 1, y - 1, 合成底色)
- .计次循环尾 ()
- .计次循环尾 ()
- 局_左边 = 0
- .如果真 (图片_取宽度 (_图片1) ≠ 局_宽度)
- 局_左边 = 到整数 ((局_宽度 - 图片_取宽度 (_图片1)) ÷ 2)
- .如果真结束
- 局_单位图.从数据创建 (_图片1)
- 局_单位图.复制到 (局_总位图, 0, 0, 图片_取宽度 (_图片1), 图片_取高度 (_图片1), 局_左边, 0)
- 处理事件 ()
- 局_左边 = 0
- .如果真 (图片_取宽度 (_图片2) ≠ 局_宽度)
- 局_左边 = 到整数 ((局_宽度 - 图片_取宽度 (_图片2)) ÷ 2)
- .如果真结束
- 局_单位图.从数据创建 (_图片2)
- 局_单位图.复制到 (局_总位图, 0, 0, 图片_取宽度 (_图片2), 图片_取高度 (_图片2), 局_左边, 图片_取高度 (_图片1))
- 处理事件 ()
- .否则
- ' 左右拼接取最高高度
- 局_高度 = 图片_取高度 (_图片1)
- .如果真 (局_高度 < 图片_取高度 (_图片2))
- 局_高度 = 图片_取高度 (_图片2)
- .如果真结束
- ' 左右拼接取两张图片宽度和
- 局_宽度 = 图片_取宽度 (_图片1) + 图片_取宽度 (_图片2)
- 局_总位图.创建空白位图 (局_宽度, 局_高度, 32)
- .计次循环首 (局_宽度, x)
- .计次循环首 (局_高度, y)
- 局_总位图.置某点颜色 (x - 1, y - 1, 合成底色)
- .计次循环尾 ()
- .计次循环尾 ()
- 局_顶边 = 0
- .如果真 (图片_取高度 (_图片1) ≠ 局_高度)
- 局_顶边 = 到整数 ((局_高度 - 图片_取高度 (_图片1)) ÷ 2)
- .如果真结束
- 局_单位图.从数据创建 (_图片1)
- 局_单位图.复制到 (局_总位图, 0, 0, 图片_取宽度 (_图片1), 图片_取高度 (_图片1), 0, 局_顶边)
- 处理事件 ()
- 局_顶边 = 0
- .如果真 (图片_取高度 (_图片2) ≠ 局_高度)
- 局_顶边 = 到整数 ((局_高度 - 图片_取高度 (_图片2)) ÷ 2)
- .如果真结束
- 局_单位图.从数据创建 (_图片2)
- 局_单位图.复制到 (局_总位图, 0, 0, 图片_取宽度 (_图片2), 图片_取高度 (_图片2), 图片_取宽度 (_图片1), 局_顶边)
- 处理事件 ()
- .如果结束
- 局_拼接结果 = 局_总位图.取出位图数据 ()
- 返回 (局_拼接结果)
复制代码
|
|