开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 3245|回复: 4
打印 上一主题 下一主题
收起左侧

[易语言纯源码] 位图源码

[复制链接]
跳转到指定楼层
楼主
发表于 2017-7-18 19:41:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式   湖南省湘西土家族苗族自治州
分享源码
界面截图: -
是否带模块: 纯源码
备注说明: -
.版本 2

.程序集 窗口程序集_启动窗口
.程序集变量 位图头结构, 位图头结构
.程序集变量 信息头结构, 信息头结构
.程序集变量 调色板, 调色板
.程序集变量 颜色表, 字节集
.程序集变量 位图宽度, 整数型
.程序集变量 位图高度, 整数型
.程序集变量 BMP, 字节集

.子程序 __启动窗口_创建完毕
.局部变量 x, 整数型
.局部变量 y, 整数型
.局部变量 设备句柄, 整数型
.局部变量 点色, 整数型

' 以下是BMP位图结构
位图宽度 = 120
位图高度 = 120
' 先建立颜色表
设备句柄 = 取设备场景_ (0)
.计次循环首 (位图高度, y)
    .计次循环首 (位图宽度, x)
        点色 = 取点_ (设备句柄, x, 位图高度 - y)
        调色板.蓝色 = GetB (点色)
        调色板.绿色 = GetG (点色)
        调色板.红色 = GetR (点色)
        颜色表 = 颜色表 + 到字节集 (调色板.蓝色) + 到字节集 (调色板.绿色) + 到字节集 (调色板.红色)
        ' 本源码来自易语言资源网(www.5A5X.com)
    .计次循环尾 ()
.计次循环尾 ()
释放设备场景_ (取屏幕句柄_ (), 设备句柄)
' 位图头结构
位图头结构.文件标识 = “BM”  ' 必须为 BM
位图头结构.文件长度 = 54 + 取字节集长度 (颜色表)
位图头结构.系统保留1 = 0
位图头结构.系统保留2 = 0
位图头结构.起始位置 = 54
' 信息头结构
信息头结构.结构大小 = 40
信息头结构.位图宽度 = 位图宽度
信息头结构.位图高度 = 位图高度
信息头结构.位图位面数 = 1
信息头结构.位深度 = 24
信息头结构.压缩方式 = #压缩方式_不压缩
信息头结构.位图大小 = 取字节集长度 (颜色表)
信息头结构.水平分辨率 = 3780  ' 本源码来自易语言资源网(www.5A5X.com)
信息头结构.垂直分辨率 = 3780
信息头结构.位图颜色表索引 = 0
信息头结构.位图显示索引 = 0
BMP = 到字节集 (位图头结构.文件标识) + 到字节集 (位图头结构.文件长度) + 到字节集 (位图头结构.系统保留1) + 到字节集 (位图头结构.系统保留2) + 到字节集 (位图头结构.起始位置) + 到字节集 (信息头结构.结构大小) + 到字节集 (信息头结构.位图宽度) + 到字节集 (信息头结构.位图高度) + 到字节集 (信息头结构.位图位面数) + 到字节集 (信息头结构.位深度) + 到字节集 (信息头结构.压缩方式) + 到字节集 (信息头结构.位图大小) + 到字节集 (信息头结构.水平分辨率) + 到字节集 (信息头结构.垂直分辨率) + 到字节集 (信息头结构.位图颜色表索引) + 到字节集 (信息头结构.位图显示索引)  ' 转为机器码
底图 = BMP + 颜色表

.子程序 GetR, 字节型
.参数 RGB, 整数型

置入代码 ({ 139, 69, 8, 137, 69, 252, 139, 69, 252, 201, 194, 4, 0 })
' mov eax,[ebp+8]
' mov [ebp-4],eax
' mov eax,[ebp-4]
' leave
' retn 4
返回 (0)

.子程序 GetG, 字节型
.参数 RGB, 整数型

置入代码 ({ 139, 69, 8, 137, 69, 252, 139, 69, 253, 201, 194, 4, 0 })
' mov eax,[ebp+8]
' mov [ebp-4],eax
' mov eax,[ebp-3]
' leave
' retn 4
返回 (0)

.子程序 GetB, 字节型
.参数 RGB, 整数型

置入代码 ({ 139, 69, 8, 137, 69, 252, 139, 69, 254, 201, 194, 4, 0 })
' mov eax,[ebp+8]
' mov [ebp-4],eax
' mov eax,[ebp-2]
' leave
' retn 4
返回 (0)


' 一、文件的组成
' BMP文件由文件头、位图信息头、调色板、数据区等几个部分组成,
' 结构如下:

' 1.位图头结构     长度 14
' 偏移            名称                            长度
' 000(000)  文件标识            2        必须为 BM
' 002(002)  文件长度            4     整个位图文件的实际长度
' 006(006)  保留1,保留2          4     必须设为0
' 0010(00A)  起始位置                4     从0起算  +14+40

' 2.信息头结构   长度 40
' 偏移            名称                       长度
' 014(00E)结构大小               4     BMP 信息头结构长度
' 018(012)位图宽度               4     图像宽度
' 022(016)位图高度               4     图像高度
' 026(01A)位图位面数           2     目标设备的级数
' 028(01C)位深度                  2     每象素所占位数
' 030(01E)压缩方式               4     象素数据的压缩类型
' 034(022)位图大小               4     位图数据的长度
' 038(026)水平分辨率           4     设备水平分辨率
' 042(02A)垂直分辨率           4     设备垂直分辨率
' 046(02E)位图颜色表索引    4     有效颜色数(调色板中实际使用的颜色索引的个数,O表示全要使用)
' 050(032)位图显示索引        4     重要的颜色索引个数,0表示所有颜色均重要

' 3.调色板
' 蓝色(B)  亮度 0-255
' 绿色(G) 亮度 0-255
' 红色(R) 亮度 0-255



结帖率:80% (12/15)

签到天数: 11 天

沙发
发表于 2017-7-18 20:35:17 | 只看该作者   四川省泸州市
我好像看到了CE的指令
回复 支持 反对

使用道具 举报

板凳
发表于 2017-7-19 14:09:16 | 只看该作者   安徽省滁州市
发个帖子支持一下
回复 支持 反对

使用道具 举报

地板
发表于 2017-7-19 21:40:22 | 只看该作者   江苏省盐城市
6666666666
回复 支持 反对

使用道具 举报

头像被屏蔽
结帖率:100% (5/5)
地下
发表于 2017-10-7 18:49:02 | 只看该作者   陕西省商洛市
看一下 路过
回复 支持 反对

使用道具 举报

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

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报QQ: 793400750,邮箱:[email protected]
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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