- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
多媒体编程基础
第六章 多媒体编程基础
6.1多媒体文件
多媒体文件一般被称为RIFF文件,即资源交互文件格式(Resource interchange file format)。RIFF格式是面向部分(Chunk)的。一个RIFF文件是由一个或多个部分组成的,每个部分都有一个类型,后面跟着一些数据。
typedef struct{
FOURCC ckID; //4字符字段,标志类型(比如波形音频为WAVE)
DWORD cksize; //部分中数据的大小
}CK;
MFC为处理RIFF文件专门提供了一套多媒体I/O函数,这些函数都有前缀mmio。比如mmioOpen是打开RIFF文件,mmioDescend可以进入RIFF文件的部分。
HMMIO h;
CString path;
……
If ((h=mmioOpen(path,NULL,MMIO_READ))==NULL)
return FALSE;
……
If (mmioRead(h,dataformat,(long)n)!=(long)n)
{ mmio Close(h,0);
return FALSE;
}
WAV文件开始是46个字节的文件头,之后是波形数据。文件头如下:Typedef struct {??? DWORD rftype;???????? //固定为字符串“RIFF”??? DWORD wbSize;???????? //波形块的大小
??? DWORD wftype;???????? //wav文件标志,固定为字符串“WAVE”??? DWORD ftype;????????? //固定为字符串“fmt”??? DWORD BlockSize;????? //格式块的大小??? WORD wFormatTag;????? //记录波形编码格式。为WAVE_FORMAT_PCM??? WORD nChannels;?????? //记录波形文件数据中的通道数??? DWORD nSamplesPerSec; //记录波形文件的采样率??? DWORD nAvgBytesPerSec;//平均每秒波形音频数据所需要的字节数??? DWORD nBlockAlign;??? //记录一个采样所需要的字节数??? WORD wBitsPerSample;? //每个采样的位数??? DWORD dataflag;?????? //固定为字符串“data”??? DWORD fSize;????????? //波形文件大小}PCMWAVEFORMAT;
BMP文件开始通常依次是14字节的文件头,40字节的位图信息,颜色表(真彩位图没有),最后是图像数据,对于用到调色板的位图,实际的图象数据ImageDate为该象素的颜色在调色板中的索引值;对于真彩色图,图象数据则为实际的R、G、B值位图数据每一行的字节数必须为4的整倍数,如果不是,则需要补齐位图文件中的数据是从下到上(而不是从上到下)、从左到右方式存储的。
文件头如下:typedef struct tagBITMAPFILEHEADER {??? WORD bftype; // 固定为字符串“BM”??? DWORD bfsize; // 字节为单位的位图文件大小??? WORD bfReserved1; // 位图文件保留字,必须为0??? WORD bfReserved2; // 位图文件保留字,必须为0??? DWORD bfoffBits; // 指出图像数据针对文件头的偏移量}BITMAPFILEHEADER;
typedef struct tagBITMAPINFOHEADER{ DWORD biSize; //本结构的长度,为40 LONG biWidth; //图象的宽度,单位是象素 LONG biHeight; //图象的高度,单位是象素 WORD biPlanes; //必须是1 WORD biBitCount; //表示颜色时要用到的位数,1(单色), 4(16色), 8(256色), 24(真彩色) DWORD biCompression; //指定位图是否压缩,有效的值为BI_RGB,BI_RLE8,BI_RLE4,BI_BITFIELDS等,BI_RGB表示不压缩 DWORD biSizeImage; //实际的位图数据占用的字节数,即 biSizeImage=biWidth’ × biHeight,biWidth’是biWidth 按照4的整倍数调整后的结果 LONG biXPelsPerMeter; //目标设备的水平分辨
您可能关注的文档
最近下载
- 深圳市八年级上学期期中考试数学试卷及参考答案(北师大版,共3套).docx VIP
- 1.3 直线运动和曲线运动(教学课件)- 三年级科学下册(教科版).ppt
- 弱电工程基本知识培训课件.pptx
- 《SolidWorks三维设计及运动仿真实例教程》全套教学课件.pptx
- 《GB29446 - 2019选煤电力消耗限额》最新解读.pptx VIP
- 对标准成本法在企业成本管理中应用的研究.docx VIP
- 西咸新区总体规划(2010-2020年)汇.doc
- 2025年部编人教版(统编新教材)初中语文八年级上册教学计划及进度表.docx
- 公务员法-公务员法.doc VIP
- GBT1094.12-2013.PDF VIP
原创力文档


文档评论(0)