大家好,现在看到电子像册多的很,觉得很好奇,有想不明白,所以来大家讨论讨论
如何把好多照片按照一定的方式生成一个mpg的文件,再加上背景音乐.或者在现有的视频mpg文件中,按照一定的规则加上照片显示一下呢?
如何把好多照片按照一定的方式生成一个mpg的文件,再加上背景音乐.或者在现有的视频mpg文件中,按照一定的规则加上照片显示一下呢?
解决方案 »
- 对相机了解的进来看看~
- 关于回调函数
- 在一个界面上按一个BUTTON后变成另一个界面,有什么好的实现方法啊,3Q~
- MS DataGrid的问题,100分
- 高分请教,如何修改一个MFC dll的名字?(内详),up者有分
- 如何在MDI结构的文档中初始化一个视图时,控制视图窗口的大小(???)急!!!
- 请教:ATL和ActiveX做的控件.dll和.ocx最主要的区别?
- 一个关于ComboBox控件的问题!急!!!谢谢!
- Win98下 windows media player 或其控件用一段时间后就不能正常播放MP3,谁遇到过?
- 如何设置对话框标题栏的文字?
- 自己写的IE的Toolbar,怎样在注册后直接显示在IE上,而不用在工具栏里选择?
- 请问哪位有在vc6下的用smtp发信的程序代码,要生成邮件信体部分(body)的,网上找的几个程序都明显不对,要能发附件的且有中文,望有的兄
//生成avi
Void BMPtoAVI(CString szAVIName, CString strBmpDir)
{
CFileFind finder;
strBmpDir += _T("\\*.*");
AVIFileInit();
AVISTREAMINFO strhdr;
PAVIFILE pfile;
PAVISTREAM ps;
int nFrames =0;
HRESULT hr; BOOL bFind = finder.FindFile(strBmpDir);
while(bFind)
{
bFind = finder.FindNextFile();
if(!finder.IsDots() && !finder.IsDirectory())
{
CString str = finder.GetFilePath();
FILE *fp = fopen(str,"rb");
BITMAPFILEHEADER bmpFileHdr;
BITMAPINFOHEADER bmpInfoHdr;
fseek( fp,0,SEEK_SET);
fread(&bmpFileHdr,sizeof(BITMAPFILEHEADER),1, fp);
fread(&bmpInfoHdr,sizeof(BITMAPINFOHEADER),1, fp); BYTE *tmp_buf = NULL;
if(nFrames ==0 )
{
AVIFileOpen(&pfile,szAviName,OF_WRITE | OF_CREATE,NULL);
_fmemset(&strhdr, 0, sizeof(strhdr));
strhdr.fccType = streamtypeVIDEO;// stream type
strhdr.fccHandler = 0;
strhdr.dwScale = 1;
strhdr.dwRate = 15; // 15 fps
strhdr.dwSuggestedBufferSize = bmpInfoHdr.biSizeImage ;
SetRect(&strhdr.rcFrame, 0, 0, bmpInfoHdr.biWidth, bmpInfoHdr.biHeight); // And create the stream;
hr = AVIFileCreateStream(pfile,&ps,&strhdr);
// hr = AVIStreamSetFormat(ps,nFrames,&bmpInfoHdr,sizeof(bmpInfoHdr));
}
tmp_buf = new BYTE[bmpInfoHdr.biWidth * bmpInfoHdr.biHeight * 3];
fread(tmp_buf, 1, bmpInfoHdr.biWidth * bmpInfoHdr.biHeight * 3, fp);
hr = AVIStreamSetFormat(ps,nFrames,&bmpInfoHdr,sizeof(bmpInfoHdr));
hr = AVIStreamWrite(ps, // stream pointer
nFrames , // time of this frame
1, // number to write
(LPBYTE) tmp_buf,
bmpInfoHdr.biSizeImage , // size of this frame
AVIIF_KEYFRAME, // flags....
NULL,
NULL); nFrames ++;
fclose(fp);
}
} AVIStreamClose(ps); if(pfile != NULL)
AVIFileRelease(pfile); AVIFileExit();
}
今年国庆放假前的两天晚上我给别人做了一个类似的程序,对方给了4000RMB
就是一个解码编码的过程!
但是考虑到效率问题,就有难度了