1 CImage img , img1 ,imDest;
2 img1.Load( 图片路径);
3 img.Load( 图片路径);
4 为了防止图片失真,先处理一下在把图片显示出来
5 SetStretchBltMode(pDC->m_hDC , HALFTONE);
6 SetBrushOrgEx( pDC->m_hDC , 0, 0, NULL);//第一个参数用什么dc画图就是它的m_hDC;比如\
7
8 *********************************************************************
9
10 imDest.Create( pDoc->m_wdOrigWeigh , pDoc->m_wdOrigHeih , 32 , 0 );
11 SetStretchBltMode(imDest.GetDC(), HALFTONE);//因为要用imDest来获取imDest.GetPixel();所以就填imDest.GetDC();
12 SetBrushOrgEx(imDest.GetDC(), 0, 0, NULL);
13 img1.StretchBlt(imDest.GetDC(), 0 , 0 , pDoc->m_wdOrigWeigh , pDoc->m_wdOrigHeih , 0 , 0 , nptWith , nPtHeig ,SRCCOPY );
14 ************************************************************************
15 img.Draw( pDC->GetSafeHdc() ,rt1.TopLeft().x , rt1.TopLeft().y , rt1.Width() , rt1.Height() , 0 , 0 , rt1.Width() ,rt1.Height() );
16
17 2.在内存里获取图片的RGB
18
19 GetRGB( CMapDefineView *pDefinedview ,CImage &img , int nPitWide , int nPitHeigh )//注意这里CImage &img传递的是引用,而不是对象,否则会弹出m_hDC== 0的警告
20
21 {
22 int nPtHeig = img1.GetWidth();
23 int nptWith = img1.GetHeight();
24
25 imDest.Create( pDoc->m_wdOrigWeigh , pDoc->m_wdOrigHeih , 32 , 0 );//首先要创建一个CImage,规定了图片的大小。        HDC hdc = imDest.GetDC();//下面要用共同获取的hdc,如果每个都直接用imDest.GetDC()的话就要释放一下DC,imDest.ReleaseDC();

        SetStretchBltMode(hdc, HALFTONE );//因为要用imDest来获取imDest.GetPixel();所以就填imDest获取的HDC ,为了防止创建的CImage里面图片失真,

        SetBrushOrgEx(hdc, 0, 0, NULL);;//为了防止创建的CImage里面图片失真,

         imgGetRGB.StretchBlt(hdc, 0 , 0 , pDoc->m_wdOrigWeigh , pDoc->m_wdOrigHeih , 0 , 0 , nptWith , nPtHeig ,SRCCOPY );//把加载的图片按照大小贴进新创建的imDest中。其中 nptWith , nPtHeig 是图片原来的宽度和高度,pDoc->m_wdOrigWeigh , pDoc->m_wdOrigHeih 是目的高度和宽度;
29
30
31 COLORREF colr;
32 int nlen = 0;
33 BYTE *Rbuf = new BYTE[ nPtHeig * nptWith ];
34 BYTE *Gbuf = new BYTE[ nPtHeig * nptWith ];
35 BYTE *Bbuf = new BYTE[ nPtHeig * nptWith ];
36 for (int i = 0 ; i <pDoc->m_wdOrigHeigh; i ++)//注意是nPtHeig 而不是nptWith ,因为这里是一行一行的获取图片RGB
37
38 {
39
40
41
42 for ( int j = 0; j < pDoc->m_wdOrigWeigh; i ++ )
43
44
45
46 {
47 colr = imDest.GetPixel( j , i );//注意j 和i 不能交换;
48 Rbuf[ nlen ] = GetRValue( colr )
49 Gbuf[ nlen ] = GetGValue( colr )
50 Bbuf[ nlen ] = GetBValue( colr )
51 nlen ++ ;
52 }
53 }
54 }

CImage 获取图片RGB 、图片高和宽;的更多相关文章

  1. iOS学习-压缩图片(改变图片的宽高)

    压缩图片,图片的大小与我们期望的宽高不一致时,我们可以将其处理为我们想要的宽高. 传入想要修改的图片,以及新的尺寸 -(UIImage*)imageWithImage:(UIImage*)image ...

  2. php获取图片RGB颜色值的例子

    php获取图片RGB颜色值的例子 很多图片站点都会根据用户上传的图片检索出图片的主要颜色值,然后在通过颜色搜索相关的图片. 之前按照网上的方法将图片缩放(或者马赛克)然后遍历每个像素点,然后统计处RG ...

  3. 27.openpyxl 向指定单元格添加图片并修改图片大小 以及修改单元格行高列宽

    openpyxl 向指定单元格添加图片并修改图片大小 以及修改单元格行高列宽 from openpyxl import Workbook,load_workbook from openpyxl.dra ...

  4. 手机端上传未知图片大小,js设置宽高比例

    <style rel="stylesheet" type="text/css"> .lunboimg{ width: 100%; height: a ...

  5. IOS: 使用imageIO获取和修改图片的exif信息

    使用imageIO获取和修改图片的exif信息 一幅图片除了包含我们能看见的像素信息,背后还包含了拍摄时间,光圈大小,曝光等信息.UIImage类将这些细节信息都隐藏了起来,只提供我们关心的图片尺寸, ...

  6. C#放缩、截取、合并图片并生成高质量新图的类

    原文:C#放缩.截取.合并图片并生成高质量新图的类 using System;using System.Drawing;using System.Drawing.Imaging;using Syste ...

  7. iOS检测用户截屏并获取所截图片

    iOS检测用户截屏并获取所截图片 微信可以检测到用户截屏行为(Home + Power),并在稍后点击附加功能按钮时询问用户是否要发送刚才截屏的图片,这个用户体验非常好.在iOS7之前, 如果用户截屏 ...

  8. js获取页面中图片的总数

    查看效果:http://keleyi.com/keleyi/phtml/image/9.htm 下面是完整代码: <html><body><div id="ke ...

  9. php获取网页中图片并保存到本地

    php获取网页中图片并保存到本地的代码,将网页中图片保存本地文件夹: save_img("http://www.jbxue.com" ?>

随机推荐

  1. uva 1368

    简单的贪心 ~ #include <cstdio> #include <cstdlib> #include <cmath> #include <map> ...

  2. hdu 1056

    水题 ~~  按题目要求直接判断~. /************************************************************************* > A ...

  3. jsp自定义标签分析

    jsp自定义标签的优势体现在于jsp页面上面减少了java代码. jsp自定义标签有三大部分组成,首先是类继承TagSupport,实现doStartTag方法. public int doStart ...

  4. POJ 3461 Oulipo(字符串匹配,KMP算法)

    题意:给出几组数据,每组有字符串W和T,问你W在T中出现几次. 思路:字符串长度很大,用KMP算法. 一开始写的是:调用KMP算法查找W在T中是否匹配,若匹配,则个数+1.则接下来T的索引移动相应的距 ...

  5. POJ 1734

    #include<iostream> #include<stdio.h> #define MAXN 105 #define inf 123456789 using namesp ...

  6. 学习笔记--Git安装 创建版本库 图文详解

    一.Git下载 在Windows上安装git,一般为msysgit,官网地址:http://git-scm.com/ 我下载的是Git-1.9.2-preview20140411.exe 二.Git安 ...

  7. 大陆 Google play 开发者注册(2016)

    1:准备一个VPN, 如:  https://vpnso.com   收费的,使用一两年了,还不错,很稳定2:准备一张普通的银行卡或者信用卡就可以了,能正常绑定支付宝就行3:在全球付上面申请一个 虚拟 ...

  8. SpringMVC学习总结(四)——基于注解的SpringMVC简单介绍

    SpringMVC是一个基于DispatcherServlet的MVC框架,每一个请求最先访问的都是 DispatcherServlet,DispatcherServlet负责转发每一个Request ...

  9. Hibernate逍遥游记-第9章 Hibernate的映射类型

    1. 2. <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate ...

  10. Spring整合CXF,发布RSETful 风格WebService(转)

    Spring整合CXF,发布RSETful 风格WebService 这篇文章是承接之前CXF整合Spring的这个项目示例的延伸,所以有很大一部分都是一样的.关于发布CXF WebServer和Sp ...