请选择 进入手机版 | 继续访问电脑版

 找回密码
 立即注册
查看: 210|回复: 0

【易语言】图片拼接源码

[复制链接]

48

主题

9

回帖

206

积分

管理员

积分
206
发表于 2024-12-18 16:42:57 | 显示全部楼层 |阅读模式
  1. .版本 2

  2. .子程序 图片_拼接1, 字节集, 公开, 两张图片拼接为一张,支持上下拼接和左右拼接,图片自动居中
  3. .参数 图片1, 字节集, , 图片文件的路径数组
  4. .参数 图片2, 字节集
  5. .参数 拼接方式, 逻辑型, , 上下拼接传入:真 左右拼接传入:假
  6. .参数 合成底色, 整数型, 可空, 默认白底
  7. .局部变量 _图片1, 字节集
  8. .局部变量 _图片2, 字节集
  9. .局部变量 局_总位图, 类_位图操作
  10. .局部变量 局_单位图, 类_位图操作
  11. .局部变量 局_宽度, 整数型
  12. .局部变量 局_高度, 整数型
  13. .局部变量 局_拼接结果, 字节集
  14. .局部变量 y, 整数型
  15. .局部变量 x, 整数型
  16. .局部变量 局_左边, 整数型
  17. .局部变量 局_顶边, 整数型

  18. 图片_转换 (图片1, 1, , _图片1)
  19. 图片_转换 (图片2, 1, , _图片2)
  20. .如果真 (合成底色 = 0)
  21.     合成底色 = #浅灰
  22. .如果真结束
  23. .如果 (拼接方式)
  24.     ' 上下拼接取最宽宽度
  25.     局_宽度 = 图片_取宽度 (_图片1)
  26.     .如果真 (局_宽度 < 图片_取宽度 (_图片2))
  27.         局_宽度 = 图片_取宽度 (_图片2)
  28.     .如果真结束

  29.     ' 上下拼接取两张图片高度和
  30.     局_高度 = 图片_取高度 (_图片1) + 图片_取高度 (_图片2)


  31.     局_总位图.创建空白位图 (局_宽度, 局_高度, 32)


  32.     .计次循环首 (局_宽度, x)
  33.         .计次循环首 (局_高度, y)
  34.             局_总位图.置某点颜色 (x - 1, y - 1, 合成底色)
  35.         .计次循环尾 ()
  36.     .计次循环尾 ()


  37.     局_左边 = 0
  38.     .如果真 (图片_取宽度 (_图片1) ≠ 局_宽度)
  39.         局_左边 = 到整数 ((局_宽度 - 图片_取宽度 (_图片1)) ÷ 2)
  40.     .如果真结束
  41.     局_单位图.从数据创建 (_图片1)
  42.     局_单位图.复制到 (局_总位图, 0, 0, 图片_取宽度 (_图片1), 图片_取高度 (_图片1), 局_左边, 0)

  43.     处理事件 ()
  44.     局_左边 = 0
  45.     .如果真 (图片_取宽度 (_图片2) ≠ 局_宽度)
  46.         局_左边 = 到整数 ((局_宽度 - 图片_取宽度 (_图片2)) ÷ 2)
  47.     .如果真结束

  48.     局_单位图.从数据创建 (_图片2)
  49.     局_单位图.复制到 (局_总位图, 0, 0, 图片_取宽度 (_图片2), 图片_取高度 (_图片2), 局_左边, 图片_取高度 (_图片1))

  50.     处理事件 ()


  51. .否则


  52.     ' 左右拼接取最高高度
  53.     局_高度 = 图片_取高度 (_图片1)
  54.     .如果真 (局_高度 < 图片_取高度 (_图片2))
  55.         局_高度 = 图片_取高度 (_图片2)
  56.     .如果真结束

  57.     ' 左右拼接取两张图片宽度和
  58.     局_宽度 = 图片_取宽度 (_图片1) + 图片_取宽度 (_图片2)


  59.     局_总位图.创建空白位图 (局_宽度, 局_高度, 32)


  60.     .计次循环首 (局_宽度, x)
  61.         .计次循环首 (局_高度, y)
  62.             局_总位图.置某点颜色 (x - 1, y - 1, 合成底色)
  63.         .计次循环尾 ()
  64.     .计次循环尾 ()


  65.     局_顶边 = 0
  66.     .如果真 (图片_取高度 (_图片1) ≠ 局_高度)
  67.         局_顶边 = 到整数 ((局_高度 - 图片_取高度 (_图片1)) ÷ 2)
  68.     .如果真结束

  69.     局_单位图.从数据创建 (_图片1)
  70.     局_单位图.复制到 (局_总位图, 0, 0, 图片_取宽度 (_图片1), 图片_取高度 (_图片1), 0, 局_顶边)

  71.     处理事件 ()
  72.     局_顶边 = 0
  73.     .如果真 (图片_取高度 (_图片2) ≠ 局_高度)
  74.         局_顶边 = 到整数 ((局_高度 - 图片_取高度 (_图片2)) ÷ 2)
  75.     .如果真结束

  76.     局_单位图.从数据创建 (_图片2)
  77.     局_单位图.复制到 (局_总位图, 0, 0, 图片_取宽度 (_图片2), 图片_取高度 (_图片2), 图片_取宽度 (_图片1), 局_顶边)

  78.     处理事件 ()

  79. .如果结束
  80. 局_拼接结果 = 局_总位图.取出位图数据 ()
  81. 返回 (局_拼接结果)
复制代码


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|叶子资源网

GMT+8, 2025-4-27 11:20 , Processed in 0.055438 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表