【发布时间】:2010-12-23 23:37:04
【问题描述】:
我想打开一个现有的电影文件并将该文件的每一帧导出为 JPEG 或 TIFF 等图像。我到现在为止:
int main(int argc, char* argv[]) {
char filename[255]; // Filename to ping.
OSErr e; // Error return.
FSSpec filespec; // QT file specification
short filemovie; // QT movie handle.
Movie movie; // QT movie "object".
InitializeQTML(0);
EnterMovies();
// Because of QT's Mac origin, must convert C-string filename
// to Pascal counted string, then use that to make a filespec.
c2pstr(filename);
FSMakeFSSpec(0, 0L, (ConstStr255Param)filename, &filespec);
OpenMovieFile(&filespec, &filemovie, fsRdPerm);
NewMovieFromFile(&movie, filemovie, nil, nil, newMovieActive, nil);
...
到目前为止,它工作正常(我用TimeValue movietime = GetMovieDuration(movie); 测试并打印它),但现在我想获取电影的每一帧并将其导出到一个文件(首先,稍后我只想将数据保存在内存可以使用它,但我必须知道它是否真的有效,所以现在导出到图像文件更好)。
我怎么做?我需要 GWorld 还是 PixMap?如何从电影文件中获取 GWorld/PixMap,尤其是其中的每一帧?
编辑:我的平台是WinXP
【问题讨论】:
-
您希望在哪个平台上执行此操作(Windows、Mac 或两者)?
标签: c++ export quicktime movie