把jpg文件读取到内存char* 再转换成CImage
网络上找到大神写的转换方法,不过就记下来,学习学习;
当然转成CImage之后就可以从CImage转换成HBITMAP 了
void DrawPic(CDC *pDC,char *buf,int len)
{
//内存数据转换成流
HGLOBAL hMem=GlobalAlloc(GMEM_FIXED,len);
BYTE* pMem=(BYTE*)GlobalLock(hMem);
memcpy(pMem,buf,len);
IStream* pStream;
HRESULT hr=CreateStreamOnHGlobal(pMem,FALSE,&pStream); //画图
CImage img;
img.Load(pStream);
img.Draw(pDC->GetSafeHdc(),CPoint(,)); //清理
img.Destroy();
pStream->Release();
GlobalFree(hMem);
}
帖子里同样也有了个疑问就是 GlobaLock 之后没有 unlock 大神给出的解释是:“这里用的固定块,GMEM_FIXED,没必要unlock”
----------------------------------------------------------------------------------
http://bbs.csdn.net/topics/390973788
把jpg文件读取到内存char* 再转换成CImage的更多相关文章
- IO流处理文件读取到字节数组,再从字节数组读取到文件,Java实现
package cn.zhang.io; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; impo ...
- Java解决大文件读取的内存问题以及文件流的比较
Java解决大文件读取的内存问题以及文件流的比较 传统方式 读取文件的方式一般是是从内存中读取,官方提供了几种方式,如BufferedReader, 以及InputStream 系列的,也有封装好的如 ...
- 将16进制unsigned char数组转换成整数
/** * 将unsigned char数组转换成long long数值 * {0x00 0x00 0x20 0x00}转换之后得到8192 * * @param str 数组 * @param le ...
- json中把非json格式的字符串转换成json对象再转换成json字符串
JSON.toJson(str).toString()假如key和value都是整数的时候,先转换成jsonObject对象,再转换成json字符串
- 读取数据库的数据并转换成List<>
一.在有帮助类DbHelperSQL的时候 1.下为其中返回SqlDataReader的方法 /// <summary> /// 执行查询语句,返回SqlDataReader ( 注意:调 ...
- 将文件读取到内存、打印pe结构
#include <stdio.h> #include <malloc.h> #include <stdlib.h> #include <string.h&g ...
- 【文件】使用jacob将word转换成pdf格式
使用jacob将word转换成pdf格式 1.需要安装word2007或以上版本,若安装07版本学确保该版本已安装2downbank0204MicrosoftSaveasPDF_ XPS,否则安装 ...
- 使用jxl读取excel内容,并转换成Json,用于Datagrid
一.上传excel文件,得到InputStream,由InputStream得到Jxl中的Workbook,取出内容,存到二维数组中. 1.使用 Jquery Uploadify 插件(http:// ...
- DataTable 转换为ArrayList 再转换成 json 格式
//JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer(); //javaScriptSeriali ...
随机推荐
- 【zzulioj-1731】矩阵
题目描述 输入
- LeetCode OJ:Permutations II(排列II)
Given a collection of numbers that might contain duplicates, return all possible unique permutations ...
- UI-隐藏键盘
键盘的出现于隐藏(代码实现)================================= 1.通知案例: #import "ViewController.h" #import ...
- main(int argc, char *argv[])详解
argc是命令行总的参数个数 argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数 命令行后面跟的用户输入的参数,比如: int main(int ar ...
- Android的方法和属性(2)
1.RadioButton(单选按钮) 嵌入到RsdioGroup中实现单选效果 android:checkedButton="radio的id值" int getCheckedR ...
- 基于用户登陆的struts2中action的分类详解
在struts2中action的分类有:继承 ActionSupport 实现 Action,模型驱动(ModelDriven)的 Action,多方法的 Action三种方式. 1.继承 Actio ...
- ng json格式的序列化和反序列化
ng中自带方法 angular.toJson 序列化angular.fromJson 反序列化 结果: 代码: <!DOCTYPE html> <html ng-app=" ...
- InpOut32 CSharpExample.cs hacking
/************************************************************************************ * InpOut32 CSh ...
- 在Ajax.ActionLink的OnBegin,onComplete等事件中使用this【解决办法】
方法就是修改这个文件[jquery.unobtrusive-ajax.js] options.data.push({ name: "X-Requested-With", value ...
- bzoj 2131 免费的馅饼
Written with StackEdit. Description Input 第一行是用空格隔开的二个正整数,分别给出了舞台的宽度\(W\)(\(1\)到\(10^8\)之间)和馅饼的个数\(n ...