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

易语言实现旋转位图不改变位图的长宽 (旋转后居中到原尺寸) (返回位图)

[复制链接]
发表于 2021-2-20 16:26:28 | 显示全部楼层 |阅读模式
输入图片(480x330):
输入.png
位图.旋转() 将图片尺寸扩大到(551x551):
旋转后B(551x551).png
本算法旋转后,居中回原尺寸(480x300):
旋转后A(480x300).png

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

  3. .程序集 程序集1

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


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

  7. .子程序 _临时子程序
  8. .局部变量 位图, 位图

  9. .如果真 (位图.载入文件 (“in.bmp”) = 假)
  10.     信息框 (位图.取错误信息 (), 0, , )
  11.     结束 ()
  12. .如果真结束
  13. 写到文件 (“out.bmp”, 位图_旋转不改变尺寸 (位图, 45, #绿色).取位图数据 ())
  14. 写到文件 (“out2.bmp”, 位图.旋转 (45, #绿色).取位图数据 ())


  15. .子程序 位图_旋转不改变尺寸, 位图, , 位图.旋转() 会扩大位图尺寸 本算法会将旋转后的位图居中到原尺寸
  16. .参数 位图, 位图
  17. .参数 旋转角度, 双精度小数型, , 正值代表正时针旋转,负值代表逆时针旋转。
  18. .参数 背景填充色, 整数型, 可空, 如果位图经过旋转后存在空缺,新增的部分将用该颜色填充。
  19. .局部变量 旋转后, 位图
  20. .局部变量 返回值, 位图
  21. .局部变量 新宽, 整数型
  22. .局部变量 新高, 整数型
  23. .局部变量 旧宽, 整数型
  24. .局部变量 旧高, 整数型

  25. 旧宽 = 位图.取宽度 ()
  26. 旧高 = 位图.取高度 ()
  27. 返回值.创建 (旧宽, 旧高, 位图.取位深度 (), 背景填充色)
  28. 旋转后 = 位图.旋转 (旋转角度, 背景填充色)
  29. 新宽 = 旋转后.取宽度 ()
  30. 新高 = 旋转后.取高度 ()
  31. 旋转后.复制到 ((新宽 - 旧宽) ÷ 2, (新高 - 旧高) ÷ 2, 旧宽, 旧高, 返回值, 0, 0, )
  32. 返回 (返回值)
复制代码

相关帖子

回复

使用道具 举报

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

本版积分规则