/*
class Image
{
public:
Image() = delete;
Image(const uint32_t& _w, const uint32_t& _h)
:w(_w), h(_h) {
data = new byte[w*h * 4];
};
~Image() { if (data) { delete[] data; } }
uint32_t w;
uint32_t h;
byte* data;
};
*/ BITMAPINFO dib;
memset(&dib, , sizeof(BITMAPINFO));
dib.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
dib.bmiHeader.biWidth = image->w;
dib.bmiHeader.biHeight =-(int) image->h;
dib.bmiHeader.biPlanes = ;
dib.bmiHeader.biBitCount = ;
dib.bmiHeader.biCompression = BI_RGB;
dib.bmiHeader.biSizeImage = image->w * image->h * ; BITMAPFILEHEADER fileHeader;
fileHeader.bfType = 0x4d42; // BM
fileHeader.bfReserved1 = ;
fileHeader.bfReserved2 = ;
fileHeader.bfSize = image->w * image->h * + sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER);
fileHeader.bfOffBits = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER);
CFile file; //保存到文件
if (file.Open("E:\\temp\\1.bmp", CFile::modeCreate | CFile::modeWrite))
{
file.Write(&fileHeader, sizeof(BITMAPFILEHEADER));
file.Write(&dib.bmiHeader, sizeof(BITMAPINFOHEADER));
file.Write(image->data, image->w * image->h * );
file.Close();
} //渲染到设备
SetDIBitsToDevice(this->GetDC()->GetSafeHdc(), , , image->w, image->h,
, , , image->h,
image->data, &dib, DIB_RGB_COLORS);

测试可行

参考:https://www.cnblogs.com/wangguchangqing/p/5432227.html

[原]将BITMAPINFO保存成bmp文件,以及渲染到设备的更多相关文章

  1. tcpdump抓包并保存成cap文件

    首选介绍一下tcpdump的常用参数 tcpdump采用命令行方式,它的命令格式为: tcpdump [ -adeflnNOpqStvx ] [ -c 数量 ] [ -F 文件名 ] [ -i 网络接 ...

  2. 将HDC保存为BMP文件

    HDC在MSDN中的全称为:The handle of device context.通常,我们都是用来做相应的显示操作.        熟悉WIN32的朋友对于其应该不会陌生,经常采用GetDC,G ...

  3. opencv::将两幅图像合并后,在同一个窗口显示;并将合并的图像流保存成视频文件

    /** * @file main-opencv.cpp * @date July 2014 * @brief An exemplative main file for the use of ViBe ...

  4. python文件目录遍历保存成xml文件代码

    Linux服务器有CentOS.Fedora等,都预先安装了Python,版本从2.4到2.5不等,而Windows类型的服务器也多数安装了Python,因此只要在本机写好一个脚本,上传到对应机器,在 ...

  5. InputStream流保存成图片文件

    public void saveBit(InputStream inStream) throws IOException{ ByteArrayOutputStream outStream = new ...

  6. Android吧数据保存成xml文件

    public class MainActivity extends Activity { private List<Person> persons; @Override protected ...

  7. 通过FFmpeg将多媒体文件解码后保存成Bmp图像(YUV420 RGB32)

    /* g++ -o test test.cpp -lavformat -lavcodec -lavutil -lz -lm -lpthread -lswscale */ #include <st ...

  8. 将网页中的html代码的table保存成word文件

    1.后台代码: string nowtime = DateTime.Now.ToString("yyyy-MM-dd"); Response.Clear(); Response.B ...

  9. 缓存1 静态缓存-->读库保存成php文件 mkdir-->file_put_contents-->var_export -->include

    @mkdir()-->file_put_contents-->$data =  "<?php\nreturn ".var_export($setting, tru ...

随机推荐

  1. WebAssembly(wasm)是什么?——学习

    WebAssembly 是一种可以使用非 JavaScript 编程语言编写代码并且能在浏览器上运行的技术方案. 参考文章标题:几张图让你看懂WebAssembly 参考地址:https://www. ...

  2. java BIO NIO IO

    参考 https://www.cnblogs.com/zedosu/p/6666984.html 摘要: 关于BIO和NIO的理解 最近大概看了ZooKeeper和Mina的源码发现都是用Java N ...

  3. java加密算法-MD5

    import java.security.MessageDigest; public class MD5Util { /*** * MD5加密 生成32位md5码 * @param 待加密字符串 * ...

  4. linux网络编程之socket编程(一)

    今天开始,继续来学习linux编程,这次主要是研究下linux下的网络编程,而网络编程中最基本的需从socket编程开始,下面正式开始学习: 什么是socket: 在学习套接口之前,先要回顾一下Tcp ...

  5. 《发际线总是和我作队》第九次作业:Beta冲刺Scrum Meeting3

    项目 内容 这个作业属于哪个课程 软件工程 这个作业的要求在哪里 实验十三 团队作业9:Beta冲刺与团队项目冲刺 团队名称 发际线总和我作队 作业学习目标 (1)掌握软件黑盒测试技术:(2)掌握软件 ...

  6. 抖音热门BGM爬虫下载

    下午无聊在某网上刷了会儿抖音,发现有些音乐还是挺好听的,可以用来做手机铃声,于是想办法从某网上把歌曲爬下来 附上代码: #!/usr/bin/env python # -*- coding: utf- ...

  7. K8s中的多容器Pod和Pod内容器间通信

    容器(Container)常被用来解决比如微服务的单个问题,但在实际场景中,问题的解决往往需要多容器方案.本文会讨论将多个容器整合进单个Kubernetes Pod 中,以及Pod中的容器之间是如何通 ...

  8. c#嵌套CMD窗口

    解决方法一: 自己放一个文本框,改成黑色,然后输入命令,执行时,你Process.Start cmd ,此时CMD窗口不显示,然后,将CMD的返回值,再取出来,设回文本框. 如何用这种方法实时获取cm ...

  9. DELL 管理软件安装

    dell不进入bios修改cpu为高性能的方法:(在下次重启后生效) 首先安装omsa:安装方法: http://linux.dell.com/repo/hardware/Linux_Reposito ...

  10. go语言-流程控制--if

    一.基本语法介绍 表达式后一定要带{},表达式不需要带(),在if中支持直接定义一个变量,如a:=2 if 表达式{ 代码执行块 }else if{ 代码执行块 }else{ 代码执行块 } 案例1. ...