C++保存图像数据至BMP文件

BOOL savebitmap(const BITMAPINFOHEADER* pHeader, const char* data, int nImgW, int nImgH, const char* filename)
{
    BITMAPINFOHEADER bmiHdr; //定义信息头
        bmiHdr.biSize = sizeof(BITMAPINFOHEADER);
        bmiHdr.biWidth = nImgW;
        bmiHdr.biHeight = nImgH;
        bmiHdr.biPlanes = 1;
        bmiHdr.biBitCount = 24;
        bmiHdr.biCompression = BI_RGB;
        bmiHdr.biSizeImage = nImgW*nImgH*3;
        bmiHdr.biXPelsPerMeter = 0;
        bmiHdr.biYPelsPerMeter = 0;
        bmiHdr.biClrUsed = 0;
        bmiHdr.biClrImportant = 0;
        FILE* fp = fopen(filename, "wb");
    if (fp)
    {
        BITMAPFILEHEADER fheader = { 0 };
        fheader.bfType = ‘M‘ << 8 | ‘B‘;
        fheader.bfSize = sizeof(BITMAPINFOHEADER) + sizeof(BITMAPFILEHEADER) + pHeader->biSizeImage;
        fheader.bfOffBits = sizeof(BITMAPINFOHEADER) + sizeof(BITMAPFILEHEADER);
        fwrite(&fheader, 1, sizeof(fheader), fp);
        fwrite(pHeader, 1, sizeof(BITMAPINFOHEADER), fp);
        fwrite(data, 1, bmiHdr.biSizeImage, fp);
        fclose(fp);
        return TRUE;
    }
    else
      return FALSE;
}

C++保存图像数据至BMP文件

时间: 2024-10-12 04:00:56

C++保存图像数据至BMP文件的相关文章

DICOM医学图像处理:DICOM存储操作之“多幅BMP图像数据存入DCM文件”

背景: 本专栏"DICOM医学图像处理"受众较窄,起初只想作为自己学习积累和工作经验的简单整理.前几天无聊浏览了一下,发现阅读量两极化严重,主要集中在"关于BMP(JPG)与DCM格式转换"和"DICOM 通讯协议",尤其是许久前的第一篇博文DCMTK开源库的学习笔记1:将DCM文件保存成BMP文件或数据流(即数组).因此在2014年底前打算写几篇关于DCM格式转换的文章,此次主要聚焦"如何将BMP.JPG等常规图像保存成DCM文件&q

DICOM医学图像处理:DICOM存储操作之 “多幅JPG图像数据存入DCM文件”

背景: 续上篇,继续介绍如何将多幅JPG图像数据存入DCM文件.即将有损压缩数据直接写入DCM文件,存储为Multi-frame形式. 多幅JPG图像数据存入DCM文件: 为了避免引起歧义,这里着重说明一下.本博文的描述的场景是:假设我们手中有多张JPG文件,想把JPG文件写入DCM文件,即单个DCM文件包含多幅图像信息的Multi-Frame形式.该问题之前与CSDN博友y317215133y也讨论过,当时我在OFFIS论坛中找到了一个帖子直接给了y317215133y答复.今天重新梳理了一下

c++创建BMP文件并写入数据

参考:http://zhidao.baidu.com/link?url=K0X3GJIiAdhEJ3UheJ8RTcEKrApKn2B6dRkcEpkVspNfebrm345Ltx7_VUJqDs9QYA-0MOTBMBLcOm-h_MD7sa 参考:http://blog.csdn.net/lanbing510/article/details/8176231 最近要看看自己生成的图像,想输出到一个bmp文件. 1.BMP文件概述 BMP(Bitmap-File)图形文件,又叫位图文件,是Win

图像预处理第9步:存为.bmp文件

//图像预处理第9步:将最终标准化后的字符图像分为单个单个的HDIB保存,并存为.bmp文件 void CChildView::OnImgprcToDibAndSave() { unsigned char* lpSrc; int w,h; w=m_charRect.front ().Width() ; h=m_charRect.front ().Height() ; m_dibRect.clear (); m_dibRectCopy.clear (); int i_src,j_src; int

图解Winhex解析BMP文件数据实例

一 实例解析 示例图片的属性: 原图: 红线处是文件头结束: 第二个红线处是位图信息头结束: 用windows画图取第(2,2)像素点的颜色:画图是从0开始计数,即第3行3列的像素: 搜索16进制的BC542F: 搜到11个: 搜到的数据都靠后:看样子位图数据是倒过来存放的: 对照上面图: 文件头 十六进制值 描 述 42 4D:BM的ASCII值,在Windows中的BMP文件标识符 76 F4 02 00 76 F4 02h=7795714,是文件的大小 - 错误,应该倒过来看: 02 f4

远程控制编写之屏幕传输 MFC实现 屏幕截图 发送bmp数据 显示bmp图像

远程控制编写之屏幕传输  MFC实现  屏幕截图 发送bmp数据 显示bmp图像: 一 : 首先要了解bmp图像的结构 详情请看我转载的一篇文章http://blog.csdn.net/hnust_xiehonghao/article/details/37656281 二: 被控端的代码 注意下面代码要放到一个线程中去 因为用到了while死循环 表示一直发送消息  直到对方关闭接收,发送失败后自动退出! 一定要放进线程 DWORD __stdcall SendScreen(LPVOID lpa

Python文件夹下图像数据可视化

Python文件夹下图像数据可视化 import matplotlib.pyplot as plt import matplotlib.image as mpimg import numpy as np   import urllib2 import urllib import os import shutil   subdir= "/7" homedir = os.getcwd() + subdir # "/home/haoyou/Dev/last_caffe_with_s

Android开发学习---android下的数据持久化,保存数据到rom文件,android_data目录下文件访问的权限控制

一.需求 做一个类似QQ登录似的app,将数据写到ROM文件里,并对数据进行回显. 二.截图 登录界面: 文件浏览器,查看文件的保存路径:/data/data/com.amos.datasave/files/LoginTest.txt------/data/data/(包名)/files/(文件名) 导出的文件内容: 三.实现代码 新建一个Android 工程.这里我选择的是2.1即API 7,进行开发的,其它都是默认下一步下一步即可. /datasave/res/layout/activity

matlab结构体形式保存数据生成.mat文件&lt; 转&gt;

2015年 参加天池大数据竞赛 为了建立模型,打算基于matlab使用Random Forest Algorithm的工具包 该工具包我在此分享给大家,http://yunpan.cn/cVXsjQvh8ARcx  访问密码 30a3 该工具包导入的数据格式就是我如下所说的封装方式,因此,在使用该算法包时,需要把自己的数据进行封装一下. 通过matlab打开,可以知道twonorm.mat里面还封装了两个.mat文件. 我们看看工具包的作者给的tutorial 部分源码如下: 的源码如下: 说明