社区
机器视觉
帖子详情
高手看过来~~,请问怎样将GIF动画的每一帧图像保存为一张图片呢?
yangyue2846464
2004-10-31 01:33:18
如题~~~,好像蛮麻烦的,请高手解答。
...全文
767
6
打赏
收藏
高手看过来~~,请问怎样将GIF动画的每一帧图像保存为一张图片呢?
如题~~~,好像蛮麻烦的,请高手解答。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yangyue2846464
2004-10-31
打赏
举报
回复
#include <gdiplus.h>
#pragma comment(lib,"gdiplus.lib")
using namespace Gdiplus;
DWORD WINAPI AniGifProc(LPVOID lpParameter)
{
ULONG_PTR GdippToken;
GdiplusStartupInput GdippStart;
GdiplusStartup(&GdippToken,&GdippStart,0);
Graphics graph(((CAniGifView*)lpParameter)->m_hWnd);
Bitmap bmp(L"h:\\temp\\caca.gif");
int w=bmp.GetWidth();
int h=bmp.GetHeight();
int FrameCount,FramePos,size,pause;
PropertyItem* pPropItem;
GUID pageGuid;
GUID* pDimID;
UINT count;
count=bmp.GetFrameDimensionsCount();
pDimID=new GUID[count];
bmp.GetFrameDimensionsList(pDimID,count);
FrameCount=bmp.GetFrameCount(&pDimID[0]);
size=bmp.GetPropertyItemSize(PropertyTagFrameDelay);
pPropItem=(PropertyItem*)malloc(size);
bmp.GetPropertyItem(PropertyTagFrameDelay,size,pPropItem);
delete[]pDimID;
pageGuid=FrameDimensionTime;
FramePos=0;
for(;;)
{
bmp.SelectActiveFrame(&pageGuid,FramePos);
/*
//这里可以保存每一帧
CLSID bmpClsid;
GetEncoderClsid(L"image/gif", &bmpClsid); //在MSDN里有
bmp.Save(L"zzbb.gif",&bmpClsid,0);
*/
graph.DrawImage(&bmp,10,10,w,h);
pause=((int*)pPropItem->value)[FramePos]*10;
Sleep(pause);
FramePos=(FramePos+1)%FrameCount;
}
free(pPropItem);
return(0);
}
void CAniGifView::OnMenuitem32771()
{ //开始
// TODO: Add your command handler code here
HANDLE hAniGif;
DWORD ThrdID;
hAniGif=CreateThread(0,0,AniGifProc,this,0,&ThrdID);
CloseHandle(hAniGif);
}
前面看到这个贴子,不过保存那里没看懂,大家教教,用GDI+实现的。
yangyue2846464
2004-10-31
打赏
举报
回复
由于特殊原因我就是须要把每一帧图像保存成图像文件,ipicture我看过,显示GIF动画可以,但是要保存每一帧的时候颜色值啊头文件啊不会指定。。。。
houdy
2004-10-31
打赏
举报
回复
还是用个库吧,现在这种开源的库很多,sf.net上很容易找到。我推荐imagemagick。
zzwu
2004-10-31
打赏
举报
回复
在网站
http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=200709
的文章中,介绍了利用ipicture接口来逐帧显示GIF动画里的每一帧,我想可以有参考价值。
zzwu
2004-10-31
打赏
举报
回复
没有专门的库来支持,这样的工作不容易,单是为了显示就要几十万byte的代码。
yangyue2846464
2004-10-31
打赏
举报
回复
高手们都睡觉了啊~~哭死了,用GDI+好像可以吧~~
谁能把详细的代码贴上来?主要就是把GIF动画里的每一帧生成一张GIF图片存放到磁
盘里。。。,分不够再加。帮帮忙了。
【吴刚大讲堂】
GIF
动画
设计快速精通标准视频教程
本教程通过PSCC2019详细讲解
GIF
动画
制作方法,达到学会制作并生成
GIF
动画
的目的。建议新学者可以配合经典版的PS销冠课程https://edu.csdn.net/course/detail/7468从而进行系统学习。
知乎怎么引流到微信和微信公众号,知乎怎么安全有效的留联系方式!
无论是新手还是
高手
,只有深入了解每个平台的运作机制,才能在最适宜的地方,以最合适的方式留下我们的联系方式。在软件中导入刚才制作的
图片
,调整
动画
属性,将宽度设为“4000”,高度设为“16000”。确认设置后,再次选中
图片
,调整帧属性,将X偏移设为“800”,Y偏移设为“7”。如果你购买的是新账号,切记要先进行一段时间的养号操作,让账号呈现出活跃状态后再进行发帖和顶帖。第一步,利用
图像
处理软件(如Photoshop)制作
一张
引流
图片
,将你的广告语巧妙地融入其中,然后
保存
好。(领取工具: hack466)
最经典的PS入门笔记,来自李涛老师的
高手
之路
总有人问阿随君怎么学PS,零基础、非专业、小白该怎么从零到入门,迅速成长为
高手
呢?在阿随君的答案中,有很多高频关键词反复亮相,而这其中李涛老师是我每次都强势安利的。我知道,可能小伙伴们还是会有些摸不着头脑,生活节奏那么快,静不下心来看那么长、那么多课的视频教程。好吧,阿随君这次掏着心窝子把自己当年看李涛老师课程随手记的笔记,长达一万多字的超级干货,全部发上来分享给大家
面试官:用Glide加载
Gif
导致的卡顿,说一下你的优化思路(1)
/6.由
Gif
数据帧构建一个
Gif
Drawable用来播放
GIF
帧的
动画
//7. 将
Gif
Drawable包装成
Gif
DrawableResource,用于维护
Gif
Drawable的回收,以及播放
动画
的停止.//获取一个标准的
Gif
解码器,用于读取
Gif
帧并且将其绘制为Bitmap,供外界使用。
信息技术02--初/高中--分类选择题(377道题与解析)
知识点分类选择题解析377道
机器视觉
4,449
社区成员
15,336
社区内容
发帖
与我相关
我的任务
机器视觉
图形图像/机器视觉
复制链接
扫一扫
分享
社区描述
图形图像/机器视觉
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章