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

易语言MASM置入代码将位图 biHeight 正负值翻转改变像素排列实现垂直镜像(返回逻辑型)

[复制链接]
发表于 2021-2-25 09:21:48 | 显示全部楼层 |阅读模式
1.png

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

  3. .程序集 程序集1

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


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

  7. .子程序 _临时子程序
  8. .局部变量 数据, 字节集
  9. .局部变量 位图, 位图
  10. .局部变量 比较结果, 文本型

  11. 数据 = 读入文件 (“in.bmp”)
  12. .如果真 (置入代码_位图_垂直镜像 (数据) = 假)
  13.     输出调试文本 (“处理失败:请确定 in.bmp 是否存在 且 数据正确。”)
  14.     结束 ()
  15. .如果真结束
  16. 写到文件 (“out1.bmp”, 数据)
  17. 位图.载入文件 (“in.bmp”)
  18. 位图 = 位图.镜像 (假, 真)
  19. 写到文件 (“out2.bmp”, 数据)


  20. .子程序 置入代码_位图_垂直镜像, 逻辑型, 公开, 将位图的 biHeight 正负值翻转改变像素排列顺序实现垂直镜像,具体请参阅相关资料。 (成功返回真,失败返回假)
  21. .参数 位图数据, 字节集, 参考, 注意本命令不会对所提交位图数据进行过多校验,用户必须执行保证该数据的正确性。

  22. 置入代码 ({ 83, 139, 69, 8, 11, 192, 117, 2, 235, 58, 139, 0, 11, 192, 117, 2, 235, 50, 139, 88, 4, 131, 251, 26, 115, 4, 51, 192, 235, 38, 131, 192, 8, 57, 88, 2, 116, 4, 51, 192, 235, 26, 102, 187, 66, 77, 102, 59, 24, 116, 4, 51, 192, 235, 13, 139, 88, 22, 247, 219, 137, 88, 22, 184, 1, 0, 0, 0, 91, 201, 194, 4, 0 })
  23. ' push ebx
  24. ' mov eax,[ebp+8]
  25. ' .if !eax
  26. ' jmp ASM_END
  27. ' .endif
  28. ' mov eax,[eax]
  29. ' .if !eax
  30. ' jmp ASM_END
  31. ' .endif
  32. ' mov ebx,[eax+4]
  33. ' .if ebx < 26
  34. ' xor eax,eax
  35. ' jmp ASM_END
  36. ' .endif
  37. ' add eax,8
  38. ' .if [eax+2] != ebx
  39. ' xor eax,eax
  40. ' jmp ASM_END
  41. ' .endif
  42. ' mov bx,19778
  43. ' .if bx != [eax]
  44. ' xor eax,eax
  45. ' jmp ASM_END
  46. ' .endif
  47. ' mov ebx,[eax+22]
  48. ' neg ebx
  49. ' mov [eax+22],ebx
  50. ' mov eax,1
  51. ' ASM_END:
  52. ' pop ebx
  53. ' leave
  54. ' retn 4

  55. 返回 (假)
复制代码

相关帖子

回复

使用道具 举报

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

本版积分规则