#include <windows.h>
#include <fstream>
using namespace std;  void main()
{  ifstream infile("bm.bmp", ios::in | ios::binary);  BITMAPFILEHEADER bmpHeader;  // 获取文件大小  infile.seekg(0, ios::end);  long nfilelen = infile.tellg();  infile.seekg(0, ios::beg);  // 读取文件头  infile.read((char*)&bmpHeader, sizeof(bmpHeader));  if (bmpHeader.bfType != 0x4d42)  return ;  // 占用一块内存  HGLOBAL hDIB = GlobalAlloc(GMEM_FIXED, nfilelen);  if (hDIB == 0)  return ;  // 把文件写入DIB  infile.read((char*)hDIB, nfilelen - sizeof(BITMAPFILEHEADER));  // 锁定内存, 位图信息指向该内存  // BITMAPINFO == 位图信息头 + 调色板  BITMAPINFO &bmpInfo = *(BITMAPINFO*)GlobalLock(hDIB);  // 位图信息头指向该内存  // BITMAPINFOHEADER *pInfoHead = (BITMAPINFOHEADER*)hDIB;  // 位图信息头大小  // int nHeadSize = sizeof(BITMAPINFOHEADER);  // 获取颜色数组  BYTE *pBmpPixelBuffer=(BYTE *)&bmpInfo + bmpHeader.bfOffBits - sizeof(BITMAPFILEHEADER);  HDC hDC = GetDC(NULL);  HBITMAP hBitmap;  hBitmap=CreateDIBitmap(hDC,(BITMAPINFOHEADER *)&bmpInfo,  CBM_INIT,(VOID *)pBmpPixelBuffer,&bmpInfo,DIB_RGB_COLORS);  HDC memDC;  memDC = CreateCompatibleDC(hDC);  SelectObject(memDC, hBitmap);  BitBlt(hDC, 0, 0, 500, 500, memDC, 0, 0, SRCCOPY);  DeleteDC(memDC);  GlobalFree(hDIB);  infile.close();
}  

http://blog.csdn.net/mmc1206x/article/details/8686822

转载于:https://www.cnblogs.com/wainiwann/p/7086853.html

从位图数据取得位图句柄相关推荐

  1. mysql 存储位图_24位位图存放格式说明

    简要说明: BMP是一种与硬件设备无关的图像文件格式,使用非常广.它采用位映射存储格式,除了图像深度可选以外,不采用其他任何压缩,因此,BMP文件所占用的空间很大.BMP文件的图像深度可选lbit.4 ...

  2. [20161107]关于数据文件位图区.txt

    [20161107]关于数据文件位图区.txt --上个星期写一篇 [20161104]File Space Bitmap Block损坏能修复吗?.txt 链接:http://blog.itpub. ...

  3. 关于位图数据和标记位-P3

    文章目录 1 背景 1.1 问题 2 问题1探究 2.1 没有区的情况 2.2 一个区的情况 2.3 两个区的情况 2.4 三个区的情况 2.5 四个区的情况 2.6 五个区的情况 3 问题2探究 3 ...

  4. 8位bmp 原始裸格式数据,需要加上文件头+位图信息头+调色板+位图数据 才是bmp图像

    byte[ ]进行处理,添加bmp的文件头+位图信息头+调色板+位图数据.保存8位bmp,如果是调色板有问题,位图 会是纯白,纯黑等,无法显示正常图像.好了,代码奉上. package com.idf ...

  5. c++读取8位和24位BMP位图数据 俺的作业

    家人萌 我因为这个作业爆炸了好多天...所以我想发一下 菜鸡一个 别骂别骂 欢迎指正  关于这个作业要先了解一下这些登西... 1)BMP 位图的结构 1.BMP文件头(14字节) ,文件的第0字节到 ...

  6. Android官方开发文档Training系列课程中文版:高效显示位图之管理位图内存

    原文地址:http://developer.android.com/training/displaying-bitmaps/manage-memory.html 除了在上一节中描述的步骤之外,还有一些 ...

  7. linux中block的概念,block(data block,directory block)、inode、块位图、inode位图和super block概念详解...

    一.基本概念: 1.block:文件系统中存储数据的最小单元,ext3文件系统中,创建时默认4k,分为存储文件数据的data block和存储目录数据的directory block 2.inode: ...

  8. java 位图法_位图法对大量整数进行排序

    问题 输入:一个最多包含n个正整数的文件,每个数都小于n,其中n=10^7.如果在输入文件中有任何正数重复出现就是致命错误.没有其他数据与该正数相关联. 输出:按升序排列的输入整数的列表. 约束:最多 ...

  9. 位图文件解析-位图(bmp)、图标(ico)与光标(cur)

    一.位图(bmp) 1.位图简介 BMP(全称Bitmap)是Windows操作系统中的标准图像文件格式,可以分成两类:设备相关位图(DDB)和设备无关位图(DIB),使用非常广.它采用位映射存储格式 ...

最新文章

  1. 医工汇聚 智竞心电 | 首届中国心电智能大赛开启招募
  2. 防止asp.net页面多次提交数据
  3. sentry使用webpack上传sourceMap源文件定位错误到更详细具体的代码片段
  4. IOS之Objective-C学习 ARC下的单例模式
  5. PlaceHolder到底什么
  6. 域控制器的常规卸载,Active Directory系列之十三
  7. 数据结构(C语言)-数组
  8. 格式工厂视频格式转换器下载
  9. Android NE问题分析方法介绍
  10. updating homebrew
  11. Spring Boot 教程
  12. iview中的Select选择器
  13. sqldbx连接db2数据库
  14. MySQL笔记---DQL语言
  15. Vmware vSphere Web Client部署ovf模板报错:传输失败 OVF 描述符不可用
  16. post请求302以及post请求变更为get请求的问题排查小记
  17. 电脑设备管理器在哪里可以找到
  18. 谈一谈机器视觉里的定拍与飞拍
  19. 16.Hamilton(哈密顿)回路问题
  20. 自定义Linxu启动logo(从其他分区加载logo)

热门文章

  1. matlab 返回变量类型的命令,MATLAB主要命令汇总
  2. qlineedit文本改变时_PyQt5 QLineEdit(单行编辑器) 学习
  3. python编程能力等级测试_青少年编程能力等级测评-Python编程二级试卷
  4. onpagefinished等了很久才执行_学了那么多精准引流推广的方法 你知道什么才是最重要的吗...
  5. linux bind日志级别,BIND日志相关(一)
  6. 分行打印列表python_#python版一行内容分行输出
  7. 光纤收发器的详细选择方法
  8. 浦发银行计算机笔试题库,2018浦发银行校园招聘笔试试题库
  9. 蓝桥杯小白系列之汇编点亮led灯
  10. 关于半马尔可夫(semi-markov)的一个形象解释