网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
成为超级会员,使用一键签到
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
04月04日
漏签
0
天
sdl吧
关注:
4,208
贴子:
12,532
看贴
图片
吧主推荐
视频
游戏
26
回复贴,共
1
页
<<返回sdl吧
>0< 加载中...
sdl2.0 如何才能实现截图功能?如何才能把界面内容保存我图片
只看楼主
收藏
回复
符华阳
初级粉丝
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
用的sdl2.0 做一个播放器,我想实现鼠标在播放器上画一个矩形,然后保存矩形里面的内容为一张bmp图片。
分三步走:
1 是获取播放器窗口显示内容 SDL_Surface* savSur = SDL_GetWindowSurface(m_pWindow);
2 是计算区域进行剪切
3 保存 SDL_SaveBMP(savSur, "D:/save.bmp");
目前就是我直接获取窗口内容然后保存,保存的是一张全黑的图片。就是感觉没有内容一样。请问怎么获取一个有效的SDL_Surface进行保存。或者是如何把渲染器 转换为SDL_Surface。我找了很久没有找到对应的函数。谢谢。
savage200
人气楷模
12
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
有一个函数可以获取的,查查官网
savage200
人气楷模
12
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
好像是renderreadpixel
辉辉游戏解说🐾
活跃吧友
5
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
这个贴吧有,你翻翻
小牛_牛sky
人气楷模
13
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
你有没有先进行渲染?
这个我倒是用的不太多
符华阳
初级粉丝
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
SDL_UpdateYUVTexture(...);
m_VideoTex = pTexture;
SDL_RenderClear(m_pRenderer);
SDL_RenderCopy(m_pRenderer, m_VideoTex, NULL, NULL);
SDL_RenderPresent(m_pRenderer);
SDL_Surface* savSur = SDL_GetWindowSurface(m_pWindow);
SDL_SaveBMP(savSur, "D:/save.bmp");
SDL_Delay(40);
有渲染的,为了保证有数据就是在关键帧的时候进行了 SDL_GetWindowSurface 即使这样也没有数据。保存的图片是黑色的
符华阳
初级粉丝
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
问题能解决了;
感谢savage200提供的函数SDL_RenderReadPixels。
我的办法:
1 根据剪切矩形创建一个surface; SDL_CreateRGBSurface
2 用SDL_RenderReadPixels获取像素数据(这里要把剪切矩形SDL_RECT传进去)
3 SDL_SaveBMP保存图片
就能实现视频界面剪切一部分保存为图片了;剪切矩形实在sdl事件里面获取鼠标事件完成的;
符华阳
初级粉丝
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
左边就是视频;绿色框是截图区域,右边图片就是截图保存的图片
小牛_牛sky
人气楷模
13
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
不错不错,给个精,方便以后给别人解答。
savage200
人气楷模
12
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
。。。
savage200
人气楷模
12
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
看官网都会
符华阳
初级粉丝
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
帖的代码被系统删了我截图试试
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示