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