[ 2007/02/05 02:33 | by turbozv ]
|
基于LibUnGif。我的目标是剥离出一套最小的,支持背景透明的,能在WinCE(PocketPC/SmartPhone)上运行的动画GIF库。
做的工作主要是几方面:
1) 增加了透明支持
2) 去掉了WinCE上不必要的一切函数
3) 写了一个Sample Code
使用方法
1)初始化Gif动画
GifWin gif;
gif.Open(gifContentBuffer, gifContentLen, RGB(0xff, 0xff, 0xff));
delay = gif.NextImage();
SetTimer(hWnd, GIF_TIMER_ID, delay, NULL);
2)显示Gif动画
WM_TIMER:
gif.Draw(hdc, left, top, right, bottom);
InvalidateRect(hdc, &rect, FALSE);
delay = gif.NextImage();
if (delay <= 0) {
gif.Reset();
delay = gif.NextImage();
}
SetTimer(hWnd, GIF_TIMER_ID, delay, NULL);
3)释放Gif动画
gif.Close();
严格遵循GPL,完整源代码下载:
做的工作主要是几方面:
1) 增加了透明支持
2) 去掉了WinCE上不必要的一切函数
3) 写了一个Sample Code
使用方法
1)初始化Gif动画
GifWin gif;
gif.Open(gifContentBuffer, gifContentLen, RGB(0xff, 0xff, 0xff));
delay = gif.NextImage();
SetTimer(hWnd, GIF_TIMER_ID, delay, NULL);
2)显示Gif动画
WM_TIMER:
gif.Draw(hdc, left, top, right, bottom);
InvalidateRect(hdc, &rect, FALSE);
delay = gif.NextImage();
if (delay <= 0) {
gif.Reset();
delay = gif.NextImage();
}
SetTimer(hWnd, GIF_TIMER_ID, delay, NULL);
3)释放Gif动画
gif.Close();
严格遵循GPL,完整源代码下载:
下载文件
用文件方式,BitBlt显示,可以rewind,加了一层window封装,感觉好用一点
怎么发出来呢?
内部的开销也大
gif.Open(gifContentBuffer, gifContentLen, RGB(0xff, 0xff, 0xff));
没有打开文件怎么直接就可以使用。同时不知道gifContentBuffer,gifContentLen变量从何赋值
gifContentBuffer是一个GIF文件的内容
你需要读入内存先~