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. 001-netty的优势

    1.API简单. 2.性能高. 3.成熟稳定. 4.入门门槛低.

  2. find()函数

    find()函数返回类型:size_type 1/S.find(T):返回T在S中第一次匹配的下标位置 2/S.find_first_of(T):返回字符串T第一个字符在S中第一次出现的下标位置 3/ ...

  3. 软工网络15团队作业1——团队组队&展示

    一.团队展示 1.队名:想不出队名 2.队员学号(标记组长) 201521123064 郭炜埕 201521123066 郑晓丽 201521123067 廖怡洁 201521123068 包梦榕 2 ...

  4. $digest / $apply digest in progress报错

    有的时候出于某种原因,如jq操作了model.或者$watch.setTimeout等函数改变了model,导致最后没有脏数据检测.所以我没就手动调用了$apply( )等.但是第一次运行的时候ang ...

  5. Winter-1-E Let the Balloon Rise 解题报告及测试数据

    Time Limit:1000MS     Memory Limit:32768KB Description Contest time again! How excited it is to see ...

  6. 【android】 中文URL资源找不到的问题

    在博客园安卓客户端时,遇到过中文资源找不到的问题 背景:在使用PICASSO的时候,遇到过中文路径加载失败.比如 https://images0.cnblogs.com/news_topic/携程.j ...

  7. iOS 绘制一个表盘时钟,秒针效果可以“扫秒/游走”

    最近自己 也尝试写了一个表盘时钟,初衷源于等车时候一个老奶奶问时间,我打开手机,时间数字对我来说相对敏感,但是老奶奶是看不清的,我想识别 还是看表盘 老远 看时针分针角度就可以识别当前时间. 于是我想 ...

  8. jQuery :gt 选择器 jQuery :lt 选择器

    选择前 3 个之后的所有 <tr> 元素: $("tr:gt(2)"); 选择前 2 个 <tr> 元素: $("tr:lt(2)");

  9. IoC控制反转与DI依赖输入

    IoC (Inversion of Control)即控制反转,是面向对象编程中的一种设计原则.它把传统上由程序代码直接操控的对象的调用权交给容器,通过外部容器来实现对象组件的装配和管理. 简单来说, ...

  10. SVN添加忽略目录

    项目:Thinkphp 目录结构: Thinkphp |-- Common |-- Runtime |-- Home 忽略目标: Runtime 文件夹及下面所有文件 首先,需要忽略的目录必须没有加入 ...