当前位置: 首页 > 编程日记 > 正文

D3D中简单的截图方法 (转)

【ZT】D3D中简单的截图方法
试了下,果然可以。



在渲染完所有东东后(Present之前)

获得BackBuffer表面

然后用D3DX的函数保存


void ScreenShot (char *filename)
{
  IDirect3DSurface9 
*tmp = NULL;
  IDirect3DSurface9 
*back = NULL;

  
//生成固定颜色模式的离屏表面(Width和 Height为屏幕或窗口的宽高)
  D3D9Device->CreateOffscreenPlainSurface(Width, Height, D3DFMT_A8R8G8B8, D3DPOOL_DEFAULT, &tmp, NULL);

  
// 获得BackBuffer的D3D Surface
  D3D9Device->GetBackBuffer(00, D3DBACKBUFFER_TYPE_MONO, &back);

  
// Copy一下,,需要时转换颜色格式
  D3DXLoadSurfaceFromSurface(tmp, NULL, NULL, back, NULL, NULL, D3DX_FILTER_NONE, 0);

  
// 保存成BMP格式
  D3DXSaveSurfaceToFile(filename, D3DXIFF_BMP, tmp, NULL, NULL);

  
// 释放Surface,防止内存泄漏
  SAFE_RELEASE(tmp);
  SAFE_RELEASE(back);
}

文件格式可以为:
D3DXIFF_BMP
    Microsoft Windows bitmap (BMP) file format.

D3DXIFF_JPG
    Joint Photographics Experts Group (JPEG) compressed file format.

D3DXIFF_PNG
    Portable Network Graphics (PNG) file format.

D3DXIFF_DDS
    Microsoft DirectDraw surface (DDS) file format.

D3DXIFF_DIB
    Windows device-independent bitmap (DIB) file format.

D3DXIFF_HDR
    High dynamic range file format.

D3DXIFF_PFM
    Portable float map file format.

相关文章:

2019年,自动化机器学习AutoML技术还火吗? | BDTC 2019

整理 | 王银出品 | AI科技大本营(ID:rgznai100) 【导读】12 月 5-7 日,由中国计算机学会主办,CCF 大数据专家委员会承办,CSDN、中科天玑协办的中国大数据技术大会(BDTC 2019)在北京长城饭店隆重…

第一次使用51cto博客

阿梅第一次使用51cto博客,以后将学习中的总结写到这里来。加油。转载于:https://blog.51cto.com/hopit/1690465

Google Test(GTest)使用方法和源码解析——结果统计机制分析

在分析源码之前,我们先看一个例子。以《Google Test(GTest)使用方法和源码解析——概况 》一文中最后一个实例代码为基准,修改最后一个“局部测试”结果为错误。(转载请指明出于breaksoftware的csdn博客) class ListTest : publi…

贾扬清感谢信:阿里开源10年,致敬千万开源人

整理 | 夕颜【导读】2019 年 10 月,有人曾根据 www.gharchive.org 的数据整理出一份 2019 年GitHub 开源贡献排行榜,获取 GitHub 2019 年的 PushEvent,通过分析 GitHub 用户提交记录中的邮件地址,分辨其所属组织。从这份榜单上可…

热烈庆祝我国神七发射成功!

热烈庆祝我国神七发射成功!

云计算设计模式(十)——守门员模式

云计算设计模式(十)——守门员模式 通过使用充当客户端和应用程序或服务之间的代理,验证和进行消毒的请求,并将它们之间的请求和数据的专用主机实例保护的应用程序和服务。这可以提供一个额外的安全层,并限制了系统的攻…

“不会Linux,怎么干程序员?”骨灰级工程师:干啥都不行!

说起优秀程序员的必备技能,我想大家都可以说很多,比如:数据结构、算法、数学、编程语言等等。但是,你可能会忽略了每一个程序员都应该掌握的技能:Linux。想一想,我们日常学习、求职、工作场景的中&#xff…

Google Test(GTest)使用方法和源码解析——Listener技术分析和应用

在《Google Test(GTest)使用方法和源码解析——结果统计机制分析》文中,我么分析了GTest如何对测试结果进行统计的。本文我们将解析其结果输出所使用到的Listener机制。(转载请指明出于breaksoftware的csdn博客) 解析 源码中,我们…

SSH连接不上Linux的解决方法

SSH连接不上Linux的解决方法: 连续弄了几次,今天早上终于把SSH连接虚拟机连接不通的问题解决了。 先简单说下概要: 主机装的是XP系统,虚拟机用的是red hat Linux。 我用的是nat连接方式是虚拟机内也能上网。 主机是用的校园内寝室共享上网。 …

熬夜翻译完的PureFTPd配置文件

[url]http://www.chinaunix.net[/url] 作者:jeffwu 发表于:2006-07-08 10:31:58 干了个通宵,一边玩一边把配置文件翻译完了,翻得不好的地方还请各位多多提点,少许不是很明白的地方就留在那了。 鼓励转贴,分发&#xf…

挑战NLP、量子计算难题,300多支本科生队伍同场角逐,2020 ASC超算竞赛一触即发...

出品 | AI科技大本营(ID:rgznai100)ASC世界大学生超级计算机竞赛(ASCStudent Supercomputer Challenge)是由中国发起的世界最大规模的大学生超算竞赛,与美国SC、德国ISC并称全球三大超算竞赛,也是目前全球最…

Google Test(GTest)使用方法和源码解析——断言的使用方法和解析

在之前博文的基础上,我们将介绍部分断言的使用,同时穿插一些源码。(转载请指明出于breaksoftware的csdn博客) 断言(Assertions) 断言是GTest局部测试中最简单的使用方法,我们之前博文中举得例子…

精品软件 推荐 硬盘物理序列号修改专家

硬盘物理序列号修改专家不是市面上那些简单修改硬盘驱动器的序列号的东西,而是修改硬盘厂商在烧制时刻录在硬盘盒上的,即(硬盘物理序列号),大约20位字母数字的组合1、可以解决部分软件封用户电脑,导致这台电…

知识图谱实体链接是什么?一份“由浅入深”的综述

作者 | 尼古拉瓦砾来源 | Paperweekly(ID:paperweekly)【导读】这个世界充斥着无数的结构化数据(wiki)和非结构化数据(web),然而,如何将两者有效地集成仍然是个非常困难的问题。本文…

Google Test(GTest)使用方法和源码解析——预处理技术分析和应用

预处理 在《Google Test(GTest)使用方法和源码解析——概况》最后一部分,我们介绍了GTest的预处理特性。现在我们就详细介绍该特性的使用和相关源码。(转载请指明出于breaksoftware的csdn博客) 测试特例级别预处理 Test Fixtures是建立一个固…

出色管理者的时间管理

出色管理者的时间管理不少管理者都有这样的感慨:“忙了一天,也不知道忙了什么,时间还不够用。”其实,只要有效地运用时间,就可以提高工作效率,在相同的时间里做更多的事,而且做得更好&#xff0…

精品软件 推荐 瑞星 杀毒软件 安全软件

一句话评价一下这软件: 功能好,速度一般。功能:设置中心:最后, 下载地址请到官方下载吧。转载于:https://blog.51cto.com/hangtc/1690981

Google Test(GTest)使用方法和源码解析——自定义输出技术的分析和应用

在介绍自定义输出机制之前,我们先了解下AssertResult类型函数。(转载请指明出于breaksoftware的csdn博客) 在函数中使用AssertionResult AssertionResult只有两种类型: AssertionSuccess()AssertionFailure()要么成功&#xff0…

五年循环期限已到,我们又要步入“AI寒冬”了吗?

作者 | Sam Shead译者 | Kolen编辑 | 夕颜出品 | AI科技大本营(ID: rgznai100) 【导读】过去的十年对人工智能来说是一个重要的十年,但该领域的研究人员认为该行业即将进入一个新的阶段。 过去几年里,人工智能这项技术的…

相知用心.相爱用情

人如花 一生匆匆而过 不要等到你凋落的时候才去眷恋天空,眷恋蝴蝶爱情是短暂的,但却是美丽的该追求的就去追求吧不要留给自己遗憾,不要让自己美丽的花朵枯萎 人生就象一列急驰的火车 机遇和缘分会让许多素昧平生的乘客在旅途中相遇、相识、相…

Android:problem opening wizard the selected wizard could not be started

直接将Eclipse关掉,重新打开后也许就好了。 如还没好,就执行如下步骤: 1.如果还没有添加ADT,则:Help -> Add New Software -> Add 在“Name”中填入ADT。 2.如果已经安装了ADT,就直接将ADT的地址填写…

Google Test(GTest)使用方法和源码解析——私有属性代码测试技术分析

有些时候,我们不仅要测试类暴露出来的公有方法,还要测试其受保护的或者私有方法。GTest测试框架提供了一种方法,让我们可以测试类的私有方法。但是这是一种侵入式的,会破坏原来代码的结构,所以我觉得还是谨慎使用。&am…

170个新项目,579个活跃代码仓库,Facebook开源年度回顾

作者 | Dmitry Vinnik译者 | 泓礼编辑 | 夕颜出品 | AI科技大本营(ID:rgznai100) 【导读】过去一年对于Facebook的开源工程师来说是繁忙的一年。在2019年,Facebook发布了170个新的开源项目,活跃代码仓库产品达到了579…

“怀才不遇”与“怀才不孕”怎么办?

今天在飞机上闲来无事,翻阅深航的随机杂志。一直以来,我乘的比较多的是南航和深航的杂志。南航的杂志基本上都是广告,没有一点可读性的内容。相反,不知道是不是深航的规模较小的原因,找不到合适的广告主吧,…

《评人工智能如何走向新阶段》后记(再续15)

由AI科技大本营下载自视觉中国170. 清华大学全球产业研究院和百度大学Alpha学院于2020年1月5日发表(人工智能)产业智能化白皮书讨论AI发展情况,应用TUMC模型,从技术和综合应用场景的角度,考察热点技术和场景的AI产业化…

Google Test(GTest)使用方法和源码解析——参数自动填充技术分析和应用

在我们设计测试用例时,我们需要考虑很多场景。每个场景都可能要细致地考虑到到各个参数的选择。比如我们希望使用函数IsPrime检测10000以内字的数字,难道我们要写一万行代码么?(转载请指明出于breaksoftware的csdn博客&#xff09…

Linux 指令篇:文件系统--fstab

Linux 指令篇:文件系统-----FSTAB指令:FSTAB使用权限 : 超级使用者 使用方式 : 使用编辑器来修改 /etc/fstab (eg. vi /etc/fstab) 说明 : 存放档案系统与目录结构对应资料的档案 fstab 栏位说明: 第一栏(fs_spec): 实际的 device…

跨平台抓包软件,可以替代Fiddler

2019独角兽企业重金招聘Python工程师标准>>> Zed Attack Proxy (ZAP) 是个强大的跨平台的抓包工具,可以用来替代windows下的Fiddler https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project https://github.com/zaproxy/zaproxy/wiki/Download…

集五福,我用Python

所有参与投票的 CSDN 用户都参加抽奖活动群内公布奖项,还有更多福利赠送作者 | Crossin先生编辑 | Jane来源 | Crossin的编程教室(ID:crossincode)【导读】你的五福集齐了吗?作为一名技术人,我们是不是可以…

Google Test(GTest)使用方法和源码解析——模板类测试技术分析和应用

写C难免会遇到模板问题,如果要针对一个模板类进行测试,似乎之前博文中介绍的方式只能傻乎乎的一个一个特化类型后再进行测试。其实GTest提供了两种测试模板类的方法,本文我们将介绍方法的使用,并分析其实现原理。(转载…