图像可视化编程 一、文件输入输出 二、bmp文件结构 三、demo解析 教字图像处要 ■■■■
一、文件输入输出 二、bmp文件结构 三、demo解析 图像可视化编程
一、文件输入输出 原则:文件结构事先约定好,按序写,按序读 教字图像处要 ■■■■门
一、文件输入输出 原则:文件结构事先约定好,按序写,按序读
二、bmp文件结构 BITMAPFILEHEADER BITMAPINFOHEADER 颜色表 Pixel data 数字图像处要 ■■■■
二、bmp文件结构 BITMAPFILEHEADER BITMAPINFOHEADER 颜色表 Pixel data
二、bmp文件结构-一BITMAPFILEHEADER Typedef struct tagBITMAPFILEHEADER WORD bfType; /*图像文件型态,固定为“BMP”*/ DWORD bfSize; /*图像文件大小,一般不用*/ WORD bfReserved1; /*保留未用*/ WORD bfReserved2; /*保留未用*/ DWORD bfOffBits; *图像数据的偏移量*/ }BITMAPFILEHEADER; 教字图像处要 ■■■■■
Typedef struct tagBITMAPFILEHEADER { WORD bfType; /*图像文件型态,固定为“BMP”*/ DWORD bfSize; /*图像文件大小,一般不用*/ WORD bfReserved1; /*保留未用*/ WORD bfReserved2; /*保留未用*/ DWORD bfOffBits; /*图像数据的偏移量*/ }BITMAPFILEHEADER; 二、bmp文件结构——BITMAPFILEHEADER
二、 bmp文件结构一一BITMAPINFOHEADER Typedef struct tagBITMAPINFOHEADER DWORD biSize; /*本数据结构大小*/ DWORD biWidth; *象素为单位,图像宽*/ DWORD biHeight; /*象素为单位,图像高* WORD biBitCount; /*每象素所占比特数*/ DWORD biSizeImage; *图像字节数的多少*/ }BITMAPINFOHEADER; 教字图像处要 ■■■■
Typedef struct tagBITMAPINFOHEADER { DWORD biSize; /*本数据结构大小*/ DWORD biWidth; /*象素为单位,图像宽*/ DWORD biHeight; /*象素为单位,图像高*/ WORD biBitCount; /*每象素所占比特数*/ DWORD biSizeImage; /*图像字节数的多少*/ ..... }BITMAPINFOHEADER; 二、bmp文件结构——BITMAPINFOHEADER
二、bmp文件结构一一颜色表 RGBQUAD:结构: typedef struct tagRGBQUAD{ unsigned char rgbBlue; unsigned char rgbGreen; unsigned char rgbRed; unsigned char rgbReserved; }RGBQUAD; 颜色表是一个RGBQUAD:结构数组,表项的多少(数组长度)由图像每象 素所占比特数决定,灰度图有256个表项,彩色图无颜色表。 教字图像处要 ■■■■■
RGBQUAD结构: typedef struct tagRGBQUAD{ unsigned char rgbBlue; unsigned char rgbGreen; unsigned char rgbRed; unsigned char rgbReserved; }RGBQUAD; 颜色表是一个RGBQUAD结构数组,表项的多少 (数组长度)由图像每象 素所占比特数决定,灰度图有256个表项,彩色图无颜色表。 二、bmp文件结构——颜色表
二、bmp文件结构一一数据阵列 1、图像每行象素所占字节要补齐4的倍数 一行象素所占字节数=(biWidth*biBitCount/8+3)/4*4 2、存储顺序是从左下角开始 数字图像处要 ■■■■
二、bmp文件结构——数据阵列 1、图像每行象素所占字节要补齐4的倍数 一行象素所占字节数=( biWidth* biBitCount/8+3)/4*4 2、存储顺序是从左下角开始
二、bmp文件结构一一Dib结构 Dib:Device-Independent bitmap BITMAPFILEHEADER BITMAPINFOHEADER 颜色表 Dib Pixel data 教字图像处要 ■■■■
Dib:Device-Independent bitmap 二、bmp文件结构——Dib结构 Dib BITMAPFILEHEADER BITMAPINFOHEADER 颜色表 Pixel data
三、demo解析 1、已经提供的函数 2、文档与视图的关系: 文档对象用来保存数据,视图对象用来显示 或修改数据,双方通过GetDocument()函数实现 数据传递。 3、图像变换与显示 教字图像处要 ■■■■
三、demo解析 1、已经提供的函数 2、文档与视图的关系: 文档对象用来保存数据,视图对象用来显示 或修改数据,双方通过 GetDocument() 函数实现 数据传递。 3、图像变换与显示