你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 图形图象处理与游戏编程
BMP图像切割存储技术与实现(二)
 

Windows中有与BitmapFileHeaderBitmapInfoHeader对应的同名结构,MSDN中有对这些结构的成员有详细介绍,在此不再详述,只介绍与本文内容密切相关的部分。

常用的BMP存储格式有真彩图和148位索引图,对应于BitmapInfoHeader结构中BiBitCount的数值分别是24148,它表示保存一个像素所需要的比特数。真彩图用24位(3个字节)保存每个像素的颜色信息,其中各用8位代表红、绿、蓝(RGB)三种颜色分量,每种颜色分量可表示为255级,真彩图不需使用调色板。索引图是指将颜色信息做成索引,保存在调色板中。记录像素颜色信息只需保存相应的颜色索引,可以大大减少像素信息存储所占用的空间。调色板信息保存在BitmapInfoHeader后,调色板中每种颜色占用32位。1位索引图中保存每个像素的颜色索引使用1个比特,因此1位索引图只有2种颜色。同理,48位索引图分别使用16种和256种颜色。因此,BiBitCount实际上代表了BMP图像的类型。

Dib Bit image中存放像素信息时,从图像的最下一行开始向上逐行存储,每一行像素所占用的字节数必须是4的倍数。如果所占用的字节数不满足4的倍数,需要在其后填充补足,一般在后面直接补0

在做BMP图像切割、存储时,一般不需要改变图像的颜色格式,即真彩图依旧是真彩图,索引图仍然是索引图。

综合上面的BMP图像格式的相关知识,可以得出结论:在做BMP图像切割、存储时,新图像的BitmapFileHeaderBitmapInfoHeader部分只需将原图像相关部分拷贝过来做少量修改即可。需要做较多修改的是Dib bit Image部分。对索引图而言,每个像素保存的起始比特位置可能不是一个字节起始比特位,像素的终止比特位可能也不是一个字节的末比特位。因此在对Dib bit Image进行修改时,需要对字节的位进行修改。

CDib类实现了对BMP图像文件的读取和显示。以该类为基础,在该类的基础上扩展得到对BMP图像切割、存储的功能。

 

3  算法概述

切割图像的矩形用两个CPoint对象定义,分别代表举行左上角(m_LU)和右下角(m_RB)顶点位置。

  推荐精品文章

·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录
·2023年10月目录
·2023年9月目录 
·2023年8月目录 

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089