设为首页收藏本站帮助中心
查看: 247|回复: 0
收起左侧

易语言将多个宽度或高度相同的小位图数组横向或纵向拼接合并成一个大位图(返回逻辑型)

[复制链接]
发表于 2020-7-9 04:00:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?加入我们

x
1.png

  1. .版本 2
  2. .支持库 BmpOperate

  3. .程序集 程序集1

  4. .子程序 _启动子程序, 整数型, , 请在本子程序中放置易模块初始化代码


  5. _临时子程序 ()  ' 在初始化代码执行完毕后调用测试代码
  6. 返回 (0)  ' 可以根据您的需要返回任意数值

  7. .子程序 _临时子程序
  8. .局部变量 位图数组, 位图, , "4"
  9. .局部变量 输出, 位图


  10. 位图数组 [1].载入文件 (“位图数组\1.bmp”)
  11. 位图数组 [2].载入文件 (“位图数组\2.bmp”)
  12. 位图数组 [3].载入文件 (“位图数组\3.bmp”)
  13. 位图数组 [4].载入文件 (“位图数组\4.bmp”)

  14. 检查 (位图数组_拼接 (位图数组, 真, 输出, 24))
  15. 写到文件 (“输出.bmp”, 输出.取位图数据 ())



  16. .子程序 位图数组_拼接, 逻辑型, 公开, 将多个宽度或高度相同的小位图拼接成一个大位图,成功返回真,失败返回假
  17. .参数 位图数组, 位图, 数组, 使用颜色表且颜色不为24位深度,可能会出现颜色错误
  18. .参数 拼接方向, 逻辑型, 可空, 假:横向拼接:所有位图高度必须一致 真:纵向拼接 所有位图宽度必须一致,否则将失败
  19. .参数 输出位图, 位图, 参考, 提供位图变量,转换结果将通过此变量传出
  20. .参数 输出位图位深度, 整数型, 可空, 位图的颜色位深度。参看“取位深度”命令,留空为24位
  21. .局部变量 成员数, 整数型
  22. .局部变量 宽度, 整数型
  23. .局部变量 高度, 整数型
  24. .局部变量 计数, 整数型
  25. .局部变量 XX, 整数型
  26. .局部变量 YY, 整数型
  27. .局部变量 X, 整数型
  28. .局部变量 Y, 整数型

  29. .如果真 (是否为空 (输出位图位深度))
  30.     输出位图位深度 = 24
  31. .如果真结束
  32. 成员数 = 取数组成员数 (位图数组)
  33. .判断开始 (成员数 ≤ 0)
  34.     返回 (假)
  35. .判断 (成员数 = 1)
  36.     输出位图 = 位图数组 [1]
  37.     返回 (真)
  38. .判断 (位图数组_宽或高是否一致 (位图数组, 拼接方向 = 假) = 假)
  39.     返回 (假)
  40. .默认

  41. .判断结束
  42. .如果 (拼接方向)
  43.     宽度 = 位图数组 [1].取宽度 ()
  44.     .计次循环首 (成员数, 计数)
  45.         高度 = 高度 + 位图数组 [计数].取高度 ()
  46.     .计次循环尾 ()
  47. .否则
  48.     高度 = 位图数组 [1].取高度 ()
  49.     .计次循环首 (成员数, 计数)
  50.         宽度 = 宽度 + 位图数组 [计数].取宽度 ()
  51.     .计次循环尾 ()
  52. .如果结束
  53. .如果真 (输出位图.创建 (宽度, 高度, 输出位图位深度, ) = 假)
  54.     返回 (假)
  55. .如果真结束
  56. .计次循环首 (成员数, 计数)
  57.     宽度 = 位图数组 [计数].取宽度 ()
  58.     高度 = 位图数组 [计数].取高度 ()
  59.     .变量循环首 (XX, XX + 宽度 - 1, 1, X)
  60.         .变量循环首 (YY, YY + 高度 - 1, 1, Y)
  61.             .如果真 (输出位图.置某点颜色 (X, Y, 位图数组 [计数].取某点颜色 (X - XX, Y - YY)) = 假)
  62.                 返回 (假)
  63.             .如果真结束

  64.         .变量循环尾 ()
  65.     .变量循环尾 ()
  66.     .如果 (拼接方向)
  67.         YY = YY + 位图数组 [计数].取高度 ()
  68.     .否则
  69.         XX = XX + 位图数组 [计数].取宽度 ()
  70.     .如果结束

  71. .计次循环尾 ()
  72. 返回 (真)


  73. .子程序 位图数组_宽或高是否一致, 逻辑型, 公开, 位图数组中所有位图的宽度或高度全部相同则返回真,否则返回假
  74. .参数 位图数组, 位图, 数组
  75. .参数 宽高, 逻辑型, 可空, 假为检测宽度,真为检测高度
  76. .局部变量 成员数, 整数型
  77. .局部变量 首图宽高, 整数型
  78. .局部变量 计数, 整数型

  79. 成员数 = 取数组成员数 (位图数组)
  80. .判断开始 (成员数 ≤ 0)
  81.     返回 (假)
  82. .判断 (成员数 = 1)
  83.     返回 (真)
  84. .默认

  85. .判断结束
  86. .如果 (宽高)
  87.     首图宽高 = 位图数组 [1].取高度 ()
  88. .否则
  89.     首图宽高 = 位图数组 [1].取宽度 ()
  90. .如果结束
  91. .如果真 (首图宽高 ≤ 0)
  92.     返回 (假)
  93. .如果真结束
  94. .如果 (宽高)
  95.     .变量循环首 (2, 成员数, 1, 计数)
  96.         .如果真 (位图数组 [成员数].取高度 () ≠ 首图宽高)
  97.             返回 (假)
  98.         .如果真结束

  99.     .变量循环尾 ()
  100. .否则
  101.     .变量循环首 (2, 成员数, 1, 计数)
  102.         .如果真 (位图数组 [成员数].取宽度 () ≠ 首图宽高)
  103.             返回 (假)
  104.         .如果真结束

  105.     .变量循环尾 ()
  106. .如果结束
  107. 返回 (真)
复制代码

相关帖子

这个小可爱很神秘,什么都没留下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则