void CAssistDlg::OnBnClickedTest()
{
HDC hdc = ::GetDC(NULL);
HDC hdcMem = CreateCompatibleDC(hdc);
HBITMAP hBmpMem = CreateCompatibleBitmap(hdc, , );
HBITMAP hBmpOld = (HBITMAP)SelectObject(hdcMem, hBmpMem);
BitBlt(hdcMem, , , , , hdc, , , SRCCOPY); {
HDC hdcThis = GetDC()->GetSafeHdc();
BitBlt(hdcThis, , , , , hdcMem, , , SRCCOPY); BITMAP bmp = {};//BITMAPINFO;BITMAPINFOHEADER;
int ret = ::GetObject(hBmpMem, sizeof(bmp), &bmp); BITMAPINFOHEADER bmi = {};
bmi.biSize = sizeof(bmi);
bmi.biWidth = bmp.bmWidth;
bmi.biHeight = -bmp.bmHeight;
bmi.biPlanes = bmp.bmPlanes;
bmi.biBitCount = bmp.bmBitsPixel;
bmi.biSizeImage = bmp.bmWidth * bmp.bmHeight * bmp.bmBitsPixel / ;
bmi.biCompression = BI_RGB; BYTE *pBuf = new BYTE[bmi.biSizeImage];
int ret2 = GetDIBits(hdcMem, hBmpMem, , bmp.bmHeight, pBuf, (BITMAPINFO*)&bmi, DIB_RGB_COLORS); for (int i = ;i < bmp.bmHeight;++i)
{
for (int j = ;j < bmp.bmWidth;++j)
{
BYTE r = pBuf[j * + i * bmp.bmWidthBytes + ];
BYTE g = pBuf[j * + i * bmp.bmWidthBytes + ];
BYTE b = pBuf[j * + i * bmp.bmWidthBytes + ]; pBuf[j * + i * bmp.bmWidthBytes + ] = r; //r
pBuf[j * + i * bmp.bmWidthBytes + ] = g; //g
pBuf[j * + i * bmp.bmWidthBytes + ] = b; //b
pBuf[j * + i * bmp.bmWidthBytes + ] = 0xff; //a
}
} PIX pix = {};
pix.w = bmp.bmWidth;
pix.h = bmp.bmHeight;
pix.informat = IFF_BMP;
pix.d = bmp.bmBitsPixel;
pix.wpl = bmp.bmWidthBytes / ;
pix.data = (l_uint32 *)pBuf;
pix.refcount = ;
pixWrite("D:\\pix.bmp", &pix, IFF_BMP);    delete []pBuf;
} SelectObject(hdcMem,hBmpOld);
DeleteDC(hdcMem);
DeleteObject(hBmpMem);
::ReleaseDC(NULL, hdc);
}

从HDC转换到leptonica PIX的更多相关文章

  1. cisco-GNS3-pix防火墙基本配置实操(持续更新)

    一.ASA和PIX基础配置 1.ASA防火墙配置 1.GNS配置 因为使用的GNS3的版本可能不同,gns配置asa防火墙的步骤可能不同 在低版本的gns中直接在qemu选项里可以直接配置,参考:ht ...

  2. CDC和HDC的区别与转换

    CDC和HDC的区别与转换 一.区别与联系HDC是句柄:CDC是MFC封装的Windows   设备相关的一个类:CClientDC是CDC的衍生类,产生对应于Windows客户区的对象HDC是WIN ...

  3. VC++ 中CDC与HDC的区别以及二者之间的转换

    MFC类的前缀都是C开头的  H开头的大多数是句柄  这是为了助记,是编程读\写代码的好的习惯.  CDC中所有MFC的DC的基类.常用的CClientDC dc(this);就是CDC的子类(或称派 ...

  4. VC中CDC与HDC的区别以及二者之间的转换

    CDC是MFC的DC的一个类 HDC是DC的句柄,API中的一个类似指针的数据类型. MFC类的前缀都是C开头的 H开头的大多数是句柄 这是为了助记,是编程读\写代码的好的习惯. CDC中所有MFC的 ...

  5. C# 与 C++ 数据类型比较及结构体转换

    引自:http://www.blogjava.net/heting/archive/2010/03/20/315998.html   C++            C# =============== ...

  6. 使用Canvas把照片转换成素描画

    原文:http://www.alloyteam.com/2012/07/convert-picture-to-sketch-by-canvas/ 腾讯的alloy team写的一个素描效果,挺不错的. ...

  7. c# 刻度:毫米 英寸 像素转换

    从目前所掌握的资料来看,c#程序中将毫米转换像素的方法无非两种: 第一种: 1: /// <summary> 2: /// 以毫米为单位的显示宽度 3: /// </summary& ...

  8. leptonica 学习笔记1

    Updated: April 26, 2015 Leptonica is a pedagogically-oriented open source site containing software t ...

  9. leptonica使用问题

    想要使用leptonica编写一个图像处理程序,或者调用leptonica/prog下例子程序,出现类似错误: leptTest ./test Error in pixReadStreamJpeg: ...

随机推荐

  1. Glide Picasso和Fresco的对比

    比较Picasso.Glide 和 Fresco 三种图片加载库 比较 Picasso 与 Glide 总体来说二者极为相似,有着近乎相同的 API 的使用风格,但 Glide 在缓存策略和加载 gi ...

  2. redis数据持久化内存不足

    原因:写数据到redis里面写不进去,查看redis日志显示: Can't save in background: fork: Cannot allocate memory 在小内存的进程上做一个fo ...

  3. 优化netbeans启动速度

    NetBeans优化的目的是提高NetBeans的启动速度和运行速度.下面介绍的NetBeans优化技巧是在版本6.0beta2上的优化.经过实验,大大提高了NetBeans的启动速度. 1,修改英文 ...

  4. Web服务器端程序的实现

    Web服务器端程序主要是两个部分,一部分是主函数,一部门是命令处理函数.命令处理函数比较好理解就是针对客户端不同的命令进行处理,与客户端进行通信.主函数也有两个主要的功能,第一是要对程序进行初始化,其 ...

  5. RedisTemplate访问Redis数据结构

    https://www.jianshu.com/p/7bf5dc61ca06 Redis 数据结构简介 Redis 可以存储键与5种不同数据结构类型之间的映射,这5种数据结构类型分别为String(字 ...

  6. Django学习笔记之Django的url反向解析

    0x00 URL反向解析和三种不同的反向解析方式 Django中提供了关于URL的映射的解决方案,可以做两个方向的使用: 1.普通解析过程:由客户端的浏览器发起一个url请求,Django根据URL解 ...

  7. CSS Border(边框)

    CSS Border(边框) 一.CSS 边框属性 CSS边框属性允许你指定一个元素边框的样式和颜色. 示例效果: 二.边框样式 边框样式属性指定要显示什么样的边界. border-style属性用来 ...

  8. 20145310 GDB调试汇编堆栈分析

    GDB调试汇编堆栈分析 由于老师说要逐条分析汇编代码,所以我学习卢肖明同学的方法,重新写了一篇博客. 代码: #include<stdio.h> short addend1 = 1; st ...

  9. springBoot的文件上传功能

    知识点: 后台:将上传的图片写入指定服务器路径,保存起来,返回上传后的图片路径(在springBoot中,参考博客:http://blog.csdn.net/change_on/article/det ...

  10. jQuery实现输入框提示,当获取焦点时提示消失,当失去焦点时内容为空则显示提示,否则保留输入信息

    首先看效果 默认状态下 获取焦点状态下 什么也没输入,离开 有输入离开 输入默认值离开 代码 <!DOCTYPE html> <html> <head> <m ...