CImage得到位图的大小

CImage image;
image.Load(_T("1.jpg"));
//HBITMAP hBitmap=image.Detach();

HGLOBAL m_hMem = GlobalAlloc(GMEM_MOVEABLE, 0);
IStream *pstm=NULL;
CreateStreamOnHGlobal(m_hMem, TRUE, &pstm);

image.Save(pstm,ImageFormatBMP);

LARGE_INTEGER liBeggining = { 0 };
pstm->Seek(liBeggining, STREAM_SEEK_SET, NULL);
DWORD size = GlobalSize(m_hMem);
LPBYTE lpData = (LPBYTE)GlobalLock(m_hMem);
CFile BMPfile(L"11.bmp",CFile::modeReadWrite | CFile::modeCreate);
BMPfile.Write (lpData,size);
BMPfile.Close();
pstm->Release();
GlobalUnlock(m_hMem);

http://bbs.csdn.net/topics/370241566

时间: 2024-10-29 19:10:39

CImage得到位图的大小的相关文章

Direct2D教程(九)渲染位图

概述 这篇的标题更确切的说应该叫位图画刷,这样才好和前几篇对应起来.在Direct2D中,位图的渲染也是通过画刷来实现的. Direct2D中并没有直接操作位图的接口,而是借助WIC(Windows Image Component)来完成的.今天我们来看看如何在Direct2D中加载并显示位图.这个方法可以用来渲染背景.基本步骤如下. 从文件创建WIC位图 由WIC位图创建D2D位图 使用D2D绘制位图 在开始之前,首先简要介绍一下WIC 什么是WIC? WIC全称是Windows Image

Xamarin.Forms学习之位图(一)

在开始我的分享之前呢,让我先问下我的问题: 1.最近更新了Xamarin 4.1.1.3,我想问下版本更新信息在哪里看? 2.更新后我新建的项目没有UWP项目了(虽然没有用过,但是我想确认是4.1.1.3移除了还是我自身的问题),其实我觉得移除了也好,UWP就用UWP写最好了! 3.我的模拟器无法使用,是我安装的问题还是说有其他的设置? 再吐个槽: 1.Xamarin.Froms早已经更新到了2.3了,但是vs的模板一直没更新(还是说可以其他设置更新?还是说2.3不稳定?),导致新建的项目的Fr

bmp位图

BMP文件由位图文件头.位图信息头.调色板和图像数据四部分组成 (1)位图文件头 1 typedef struct tagBITMAPFILEHEADER 2 { 3 WORD bfType; //位图文件的类型,必须为BM(1-2字节) 4 DWORD bfSize; //位图文件的大小,以字节为单位(3-6字节,低位在前) 5 WORD bfReserved1; //位图文件保留字,必须为0(7-8字节) 6 WORD bfReserved2; //位图文件保留字,必须为0(9-10字节)

linux内核中的位图

    位图(bitmap)是一种非常有用的数据结构,在处理系统中的进程数管理.磁盘中的磁盘块管理.以及内存中的内存页的使用情况管理时非常有用.     同时在内核中对位图进行各种操作,现在总结一些常用的操作,以便在以后用到时方便回顾.     几个常用的宏定义:     #define BIT_PER_TYPE 8      #define __WORDSIZE   32     #define BITS_PER_LONG  __WORDSIZE     #define DIV_ROUND_U

Delphi GDI对象之绘制位图

http://www.cnblogs.com/pchmonster/archive/2012/07/06/2579334.html 绘制位图(Drawing Bitmaps) 绘制位图听起来似乎很难,然而如几次所见到的那样,绘制位图非常容易.TCanvas类具有几种方法绘制位图,最常用的方法是Draw方法,这种方法只是在画布上指定位置绘制位图.用户已经见过几个这样的例子.下面是简短的例子. 1 2 3 4 5 6 7 8 9 procedure TForm1.btn1Click(Sender:

【数字图像】C++8位和24位BMP位图的平滑、锐化、二值化处理,以及24位真彩图的灰度化

头文件: typedef unsigned char BYTE; typedef unsigned short WORD; typedef unsigned int DWORD; typedef long LONG; //BMP文件头(14字节) typedef struct tagBITMAPFILEHEADER { //WORD bfType;//位图文件的类型,必须为BM(在结构体中读取会发生错误,所以在函数中读取) DWORD bfSize;//位图文件的大小,以字节为单位 WORD b

BMP位图文件格式详解及编程建议

BMP文件渊源流长,虽然对JPG.PNG等格式图像文件来说,确实有点土,但是毕竟BMP文件格式相对简单,容易理解,至于BMP众多的位图格式也不能责怪微软,主要是早期谁也没料到图片技术会发展的这么快,而且每次升级还要兼容,所以只能如此了(有点麻烦但并不复杂).天缘撰写本文以便留档和各位编程爱好者参考. BMP位图文件的结构主要由:BMP文件头.位图信息头.颜色表和图形数据四个部分组成,对于24位.32位则没有色彩表字段,低位图则存在色彩索引表. 一.BMP的文件头结构 BMP文件头数据结构包含有B

双缓冲显示位图

原理: 创建内存位图对象: 创建内存DC: 将位图对象选入到内存DC,便可以在内存DC中画图: 最后将内存DC中的图拷贝到窗口DC 在BOOL C***Dlg::OnEraseBkgnd(CDC* pDC) 中实现: CDC MemDC; //定义一个显示设备对象 CBitmap MemBitmap;//定义一个内存位图对象 //随后建立与屏幕显示兼容的内存显示设备 MemDC.CreateCompatibleDC(NULL); //这时还不能绘图,因为没有地方画 //下面建立一个与屏幕显示兼容

位图与布隆过滤器简明介绍

一个由1亿个数组成的集合M,数的范围从1~10亿 新来一个数n,如何快速且省内存地判断是否存在M中? 方法一: 将集合M的数用散列表保存,然后对数n判断是否在散列表中即可 消耗内存:假设一个数用4字节保存,1亿个数至少要381M内存,不过由于实际上由于有装载因子,散列冲突解决等,实际内存远远不止381M 方法二: 申请一个大小为10亿,数据类型为布尔的"特殊"散列表,将这一亿个数作为散列表下标,将值设成True 不过很多语言的布尔大小是1字节,并不能节省很大空间,实际上只需要使用1个二