网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
成为超级会员,使用一键签到
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
10月19日
漏签
0
天
sdl吧
关注:
4,191
贴子:
12,509
看贴
图片
吧主推荐
视频
游戏
19
回复贴,共
1
页
<<返回sdl吧
>0< 加载中...
求助一个用SDL播放图片的程序,需要支持播放动态GIF
只看楼主
收藏
回复
chenlinjia1126
活跃吧友
4
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
谁能给我弄一段用SDL循环播放给定的几组图片的播放器程序,要求GIF动态图片,由于是在树莓派上运行(linux),我不希望引入太多第三方库,就用SDL_image,嗯,采纳发200RMB红包,加我微信18575530990,这个也是我的手机号
chenlinjia1126
活跃吧友
4
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
@q1099976891
chenlinjia1126
活跃吧友
4
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
@小牛_牛sky
chenlinjia1126
活跃吧友
4
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
@天蝎away123
chenlinjia1126
活跃吧友
4
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
@Drcxd
小牛_牛sky
人气楷模
13
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
我发过一个帖子,给你找找
小牛_牛sky
人气楷模
13
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
【sdl】SDL2解析gif动态图片
http://tieba.baidu.com/p/4543758225
chenlinjia1126
活跃吧友
4
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
#include "SDL2/SDL.h"
#include<cstdio>
#include<vector>
#include<string>
#include<iostream>
#include "SDL_anigif.h"
#include "SDL_anigif.c"
SDL_Event event;
bool g_bRunning = true;
SDL_Rect destRect={0,0,0,0};
SDL_Window*gWin;
SDL_Renderer*gRen;
int number;
std::vector<SDL_Texture*> textures;
AG_Frame*frames;
int currentFrame = 0;
SDL_mutex *mutex = NULL;
std::string file;
bool flag = false;
int LoadImgThread(void *ptr)
{
while(true)
{
std::cin>>file;
SDL_LockMutex(mutex);
number = AG_LoadGIF(file.c_str(),NULL,0);
frames = new AG_Frame[number];
AG_LoadGIF(file.c_str(),frames,number);
destRect.w = frames[0].surface->w;
destRect.h = frames[0].surface->h;
textures.clear();
for(int i=0;i<number;i++)
{
SDL_Texture*texture = SDL_CreateTextureFromSurface(gRen,frames[i].surface);
textures.push_back(texture);
}
flag = true;
SDL_UnlockMutex(mutex);
std::cout<<file<<std::endl;
SDL_Delay(100);
}
return 0;
}
int main(int argc,char**argv)
{
mutex = SDL_CreateMutex();
SDL_Init(SDL_INIT_EVERYTHING);
gWin = SDL_CreateWindow("Player",SDL_WINDOWPOS_CENTERED,SDL_WINDOWPOS_CENTERED,640,480,SDL_WINDOW_SHOWN);
gRen = SDL_CreateRenderer(gWin,-1,SDL_RENDERER_ACCELERATED|SDL_RENDERER_PRESENTVSYNC);
SDL_Thread *thread = SDL_CreateThread( LoadImgThread, "1111", (void *)NULL);
while(g_bRunning)
{
while(SDL_PollEvent(&event))
{
switch(event.type)
{
case SDL_QUIT:
g_bRunning = false;
break;
}
}
SDL_LockMutex(mutex);
if(!flag)
{
SDL_Delay(100);
continue;
}
SDL_SetRenderDrawColor(gRen,255,200,100,255);
SDL_RenderClear(gRen);
SDL_RenderCopy(gRen,textures.at(currentFrame++%number),NULL,&destRect);
SDL_RenderPresent(gRen);
SDL_Delay(frames->delay);
SDL_UnlockMutex(mutex);
}
delete[] frames;
SDL_DestroyRenderer(gRen);
SDL_
chenlinjia1126
活跃吧友
4
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
DestroyWindow(gWin);
return 0;
}
chenlinjia1126
活跃吧友
4
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
@小牛_牛sky
我稍微改了一下,结果调试了好久都调不通,我只是想把这个程序改成能从控制台输入不同图片的程序
chenlinjia1126
活跃吧友
4
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
@小牛_牛sky
您呢指导一下吗,不到100行代码,完了请你喝杯茶
小牛_牛sky
人气楷模
13
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
对多线程不怎么熟悉,而且我也没用过SDL时从控制台读取数据。。
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示