从位图数据取得位图句柄
#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
从位图数据取得位图句柄相关推荐
- mysql 存储位图_24位位图存放格式说明
简要说明: BMP是一种与硬件设备无关的图像文件格式,使用非常广.它采用位映射存储格式,除了图像深度可选以外,不采用其他任何压缩,因此,BMP文件所占用的空间很大.BMP文件的图像深度可选lbit.4 ...
- [20161107]关于数据文件位图区.txt
[20161107]关于数据文件位图区.txt --上个星期写一篇 [20161104]File Space Bitmap Block损坏能修复吗?.txt 链接:http://blog.itpub. ...
- 关于位图数据和标记位-P3
文章目录 1 背景 1.1 问题 2 问题1探究 2.1 没有区的情况 2.2 一个区的情况 2.3 两个区的情况 2.4 三个区的情况 2.5 四个区的情况 2.6 五个区的情况 3 问题2探究 3 ...
- 8位bmp 原始裸格式数据,需要加上文件头+位图信息头+调色板+位图数据 才是bmp图像
byte[ ]进行处理,添加bmp的文件头+位图信息头+调色板+位图数据.保存8位bmp,如果是调色板有问题,位图 会是纯白,纯黑等,无法显示正常图像.好了,代码奉上. package com.idf ...
- c++读取8位和24位BMP位图数据 俺的作业
家人萌 我因为这个作业爆炸了好多天...所以我想发一下 菜鸡一个 别骂别骂 欢迎指正 关于这个作业要先了解一下这些登西... 1)BMP 位图的结构 1.BMP文件头(14字节) ,文件的第0字节到 ...
- Android官方开发文档Training系列课程中文版:高效显示位图之管理位图内存
原文地址:http://developer.android.com/training/displaying-bitmaps/manage-memory.html 除了在上一节中描述的步骤之外,还有一些 ...
- linux中block的概念,block(data block,directory block)、inode、块位图、inode位图和super block概念详解...
一.基本概念: 1.block:文件系统中存储数据的最小单元,ext3文件系统中,创建时默认4k,分为存储文件数据的data block和存储目录数据的directory block 2.inode: ...
- java 位图法_位图法对大量整数进行排序
问题 输入:一个最多包含n个正整数的文件,每个数都小于n,其中n=10^7.如果在输入文件中有任何正数重复出现就是致命错误.没有其他数据与该正数相关联. 输出:按升序排列的输入整数的列表. 约束:最多 ...
- 位图文件解析-位图(bmp)、图标(ico)与光标(cur)
一.位图(bmp) 1.位图简介 BMP(全称Bitmap)是Windows操作系统中的标准图像文件格式,可以分成两类:设备相关位图(DDB)和设备无关位图(DIB),使用非常广.它采用位映射存储格式 ...
最新文章
- 医工汇聚 智竞心电 | 首届中国心电智能大赛开启招募
- 防止asp.net页面多次提交数据
- sentry使用webpack上传sourceMap源文件定位错误到更详细具体的代码片段
- IOS之Objective-C学习 ARC下的单例模式
- PlaceHolder到底什么
- 域控制器的常规卸载,Active Directory系列之十三
- 数据结构(C语言)-数组
- 格式工厂视频格式转换器下载
- Android NE问题分析方法介绍
- updating homebrew
- Spring Boot 教程
- iview中的Select选择器
- sqldbx连接db2数据库
- MySQL笔记---DQL语言
- Vmware vSphere Web Client部署ovf模板报错:传输失败 OVF 描述符不可用
- post请求302以及post请求变更为get请求的问题排查小记
- 电脑设备管理器在哪里可以找到
- 谈一谈机器视觉里的定拍与飞拍
- 16.Hamilton(哈密顿)回路问题
- 自定义Linxu启动logo(从其他分区加载logo)
热门文章
- matlab 返回变量类型的命令,MATLAB主要命令汇总
- qlineedit文本改变时_PyQt5 QLineEdit(单行编辑器) 学习
- python编程能力等级测试_青少年编程能力等级测评-Python编程二级试卷
- onpagefinished等了很久才执行_学了那么多精准引流推广的方法 你知道什么才是最重要的吗...
- linux bind日志级别,BIND日志相关(一)
- 分行打印列表python_#python版一行内容分行输出
- 光纤收发器的详细选择方法
- 浦发银行计算机笔试题库,2018浦发银行校园招聘笔试试题库
- 蓝桥杯小白系列之汇编点亮led灯
- 关于半马尔可夫(semi-markov)的一个形象解释