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

易语言MASM置入代码实现 取平均颜色() 计算两个颜色值RGB混合后的颜色值 (返回整数型)

[复制链接]
发表于 2021-3-4 17:38:09 | 显示全部楼层 |阅读模式

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

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

x
@.png
  1. .版本 2
  2. .支持库 spec

  3. .程序集 程序集1

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


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

  7. .子程序 _临时子程序
  8. .局部变量 颜色A, 整数型
  9. .局部变量 颜色B, 整数型
  10. .局部变量 计数, 长整数型
  11. .局部变量 混合色, 整数型

  12. 置随机数种子 ()
  13. .判断循环首 (真)
  14.     颜色A = 取颜色值 (取随机数 (0, 255), 取随机数 (0, 255), 取随机数 (0, 255))
  15.     颜色B = 取颜色值 (取随机数 (0, 255), 取随机数 (0, 255), 取随机数 (0, 255))
  16.     混合色 = 取平均颜色 (颜色A, 颜色B)
  17.     .如果真 (混合色 ≠ 取平均颜色_旧 (颜色A, 颜色B))
  18.         输出调试文本 (“计算出错”)
  19.         跳出循环 ()
  20.     .如果真结束
  21.     计数 = 计数 + 1
  22.     .如果真 (计数 % 1000000 = 0)
  23.         调试输出 (计数, 颜色A, 颜色B, 混合色)
  24.     .如果真结束

  25. .判断循环尾 ()


  26. .子程序 取平均颜色, 整数型, 公开, 将两个颜色的RGB相加后除以2,返回平均后的颜色
  27. .参数 颜色A, 整数型, , 范围:0~16777215
  28. .参数 颜色B, 整数型, , 范围:0~16777215

  29. 置入代码 ({ 83, 81, 51, 192, 138, 69, 10, 102, 15, 182, 216, 138, 69, 14, 102, 15, 182, 200, 102, 3, 217, 102, 209, 235, 138, 195, 193, 224, 8, 138, 69, 9, 102, 15, 182, 216, 138, 69, 13, 102, 15, 182, 200, 102, 3, 217, 102, 209, 235, 138, 195, 193, 224, 8, 138, 69, 8, 102, 15, 182, 216, 138, 69, 12, 102, 15, 182, 200, 102, 3, 217, 102, 209, 235, 138, 195, 89, 91, 201, 194, 8, 0 })
  30. ' push ebx
  31. ' push ecx
  32. ' xor eax,eax
  33. ' mov al,[ebp+10]
  34. ' movzx bx,al
  35. ' mov al,[ebp+14]
  36. ' movzx cx,al
  37. ' add bx,cx
  38. ' shr bx,1
  39. ' mov al,bl
  40. ' shl eax,8
  41. ' mov al,[ebp+9]
  42. ' movzx bx,al
  43. ' mov al,[ebp+13]
  44. ' movzx cx,al
  45. ' add bx,cx
  46. ' shr bx,1
  47. ' mov al,bl
  48. ' shl eax,8
  49. ' mov al,[ebp+8]
  50. ' movzx bx,al
  51. ' mov al,[ebp+12]
  52. ' movzx cx,al
  53. ' add bx,cx
  54. ' shr bx,1
  55. ' mov al,bl
  56. ' pop ecx
  57. ' pop ebx
  58. ' leave
  59. ' retn 8
  60. 返回 (0)

  61. .子程序 取平均颜色_旧, 整数型
  62. .参数 颜色A, 整数型
  63. .参数 颜色B, 整数型
  64. .局部变量 R, 字节型
  65. .局部变量 G, 字节型
  66. .局部变量 B, 字节型

  67. R = 右移 (取红色值 (颜色A) + 取红色值 (颜色B), 1)
  68. G = 右移 (取绿色值 (颜色A) + 取绿色值 (颜色B), 1)
  69. B = 右移 (取蓝色值 (颜色A) + 取蓝色值 (颜色B), 1)
  70. 返回 (取颜色值 (R, G, B))

  71. .子程序 取红色值, 字节型
  72. .参数 颜色值, 整数型

  73. 置入代码 ({ 139, 69, 8, 37, 255, 0, 0, 0, 201, 194, 4, 0 })
  74. 返回 (0)

  75. .子程序 取绿色值, 字节型
  76. .参数 颜色值, 整数型

  77. 置入代码 ({ 139, 69, 8, 193, 232, 8, 37, 255, 0, 0, 0, 201, 194, 4, 0 })
  78. 返回 (0)

  79. .子程序 取蓝色值, 字节型
  80. .参数 颜色值, 整数型

  81. 置入代码 ({ 139, 69, 8, 193, 232, 16, 37, 255, 0, 0, 0, 201, 194, 4, 0 })
  82. 返回 (0)
复制代码

相关帖子

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

使用道具 举报

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

本版积分规则