很多人在使用Beyond Compare的时候,发现Beyond Compare抑制过滤的功能。但是也有用户不需要这种自动过滤的功能的,那么接下来下载吧就和大家分享,Beyond Compare文件夹同步抑制过滤方法。......
2016-09-28 200 Beyond Compa
图标文件(*.ico)由图标文件头、图片入口数据和图片数据三个部分组成,这三个部分的具体结构如下:
1.图标文件头
图标文件头包括三个部分6个字节,他们分别是
数据类型 |
字节 |
含义 |
说明 |
WORD |
2 |
保留字段(wReserved) |
必须0 |
WORD |
2 |
文件类型(wType) |
必须1 |
WORD |
2 |
图片数量(wCount) |
表示该图标文件包含多少个图片 |
2.图片入口
接下来是wCount个“图片入口”数据。每个“图片入口”数据结构如下:
数据类型 |
字节 |
含义 |
说明 |
BYTE |
1 |
图像宽度(bWidth) |
单位:像素。256px的图片该值为0 |
BYTE |
1 |
图像高度(bHeight) |
同上 |
BYTE |
1 |
颜色数(bClrCount) |
不重要 |
BYTE |
1 |
保留字段(bReserved) |
必须为0 |
WORD |
2 |
平面数(wPlanes) |
一般为1 |
WORD |
2 |
比特数(wBitCount) |
颜色深度,取值4位、8位、24位和32位 |
DWORD |
4 |
数据大小(dwImageSize) |
对应图片数据占用的字节数 |
DWORD |
4 |
数据位置(dwOffset) |
对应图片数据在文件中的位置 |
3.图片数据
对于256X256像素的图片,在文件中存储的格式是PNG,只要将整个PNG文件写在数据区就可以了,对应前面的图片入口的数据大小(dwImageSize)也是PNG文件的大小。但是XP操作系统不认该图片。
对于其他图片,该区域存放了一个目标颜色深度(wBitCount)的数据位图后面跟一个对应的遮罩位图。系统在绘制图标时会先将遮罩位图与目标设备“与”拷贝(SRCAND),然后在把数据位图与目标设备“异或”拷贝(SRCINVERT)。
数据位图的颜色深度可以是4位16色、8位256色、24位真彩色或32位带Alpha通道。需要注意的是就算是32位带Alpha通道的位图也是需要遮罩位图的。
遮罩位图是一个1位颜色深度的2值位图,有图像的位置填0,透明的位置填1。
数据位图的结构与普通位图结构基本相似,但是缺少14位的位图文件头。具体包含位图信息头、颜色表(只有4位和8位的位图才会有,4位的位图颜色表长度为16X4=64字节,8位的位图颜色表长度为256X4=1024字节)和数据区。
位图信息头结构如下:
数据类型 |
字节 |
含义 |
说明 |
DWORD |
4 |
结构大小(biSize) |
固定为40 |
LONG |
4 |
图像宽度(biWidth) |
单位:像素 |
LONG |
4 |
图像高度(biHeight) |
单位:像素。由于还有遮罩因此要X2 |
WORD |
2 |
平面数(biPlanes) |
一般为1 |
WORD |
2 |
比特数(biBitCount) |
颜色深度,取值4位、8位、24位和32位 |
DWORD |
4 |
压缩(biCompression) |
一般为0 |
DWORD |
4 |
数据大小(biSizeImage) |
|
LONG |
4 |
分辨率(biXPelsPerMeter) |
|
LONG |
4 |
分辨率(biYPelsPerMeter) |
|
DWORD |
4 |
使用颜色(biClrUsed) |
|
DWORD |
4 |
重要颜色(biClrImportant) |
获取数据位图可以用如下办法:
先利用CImage类创建一个目标大小和颜色深度的位图。注意:4位和8位的位图需要设置颜色表,不然无法从源图片复制数据,颜色表可以采用固定的数据。32位位图需要开启Alpha通道,不然无法复制Alpha通道的数据。
然后利用CImage::GetDC、CImage::ReleaseDC、CImage::GetPixelAddress和CImage::Draw等函数从源图复制图像数据到该位图。
接着将该位图保存到一个临时位图文件中。从该文件中读取
相关文章
很多人在使用Beyond Compare的时候,发现Beyond Compare抑制过滤的功能。但是也有用户不需要这种自动过滤的功能的,那么接下来下载吧就和大家分享,Beyond Compare文件夹同步抑制过滤方法。......
2016-09-28 200 Beyond Compa
Outlook代收邮箱设置指南 1.登录Outlook邮箱(http://www.outlook.com),点击右上角齿轮图标,选择【选项】。 2.点击管理账户下的你的电子邮件账户。 3.点击添加电子邮件帐户下的添加仅发送账户或......
2016-10-04 200 outlook邮箱
今天小编又来和网友谈谈为什么 QQ老掉线,QQ掉线是怎么回事 的问题。因为笔者经常在跟朋友聊天的时候,qq就自动掉线了,小编也出现过这种情况。那么为什么qq老掉线呢?听小编慢慢......
2016-11-14 200 qq老掉线
不管是专业的动画还是简单的GIF动画都需要用软件,但很多朋友都不知道用什么软件制作动画,下面安下小编就来告诉大家制作专业动画和GIF动画都可以用什么软件。收费的、免费的软件......
2016-10-04 200 GIF动画
Excel2010怎么插入超链接。我们在制作Excel表格的时候,常常会需要一些超链接,让表哥内容更加丰富。可是要怎么插入超链接呢?现在就让小编来跟大家演示一下, 怎么设置Excel2010插入......
2016-10-09 200 excel技巧 excel教程 excel实例教程 excel2010技巧