CImage 获取图片RGB 、图片高和宽;

 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     }

时间: 2024-11-08 19:18:09

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

jQuery获取intput file图片的宽高

如何判断input file表单里上传的图片的宽高呢?这个时候图片还没真正上传,也不是在页面上展示,不能使用$("id").width()这种方式. 在Stack Overflow找到一个方法: var _URL = window.URL || window.webkitURL; $("#file").change(function (e) {     var file, img;     if ((file = this.files[0])) {        

php Imagick获取图片RGB颜色值_php技巧

很多图片站点都会根据用户上传的图片检索出图片的主要颜色值,然后在通过颜色搜索相关的图片. 之前按照网上的方法将图片缩放(或者马赛克)然后遍历每个像素点,然后统计处RGB次数最多的值,这做法效率太低而且取到的RGB值不够精确.之后才发现使用Imagick的quantizeImage方法能够很方便的取到图片中平均的RGB值. $average = new Imagick("xiaocai.jpg"); $average->quantizeImage( 10, Imagick::COL

asp读取图片或flash高宽

asp读取图片或flash高宽, Function GetFlashAndPic(url,height,width)  Dim sExtName,ExtName,strTemp  sExtName = Split(url, ".")  ExtName = sExtName(UBound(sExtName))  If LCase(ExtName) = "swf" Then   strTemp = "<embed src=""&quo

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

原文:C#放缩.截取.合并图片并生成高质量新图的类 using System;using System.Drawing;using System.Drawing.Imaging;using System.Drawing.Drawing2D;using System.IO; namespace Framework{public class ImageClass{        public Image ResourceImage;        public int Width=0;       

网页开发-如果获取文字或图片或标签连接

问题描述 如果获取文字或图片或标签连接 开发-如果获取文字或图片或标签连接-ios获取网页标签内容">像图片一样,假如我要获得我要提问的这个DIV的连接,用webbrowser怎么获取呢,或者用其他的方法,希望大大可以举个栗子 解决方案 webbrowser.document.body.all(元素id)具体元素id可以用IE F12去看.

C# 获取外网图片并保存到相对应路径

 C# 获取外网图片并保存到相对应路径  public static int SaveImageFromWeb(string imgUrl,string path,string fileName)   ...{    if(path.Equals(""))     throw new Exception("未指定保存文件的路径");     string imgName = imgUrl.ToString().Substring(imgUrl.ToString().

ios-IOS获取系统相册图片名称在非ARC模式下报错

问题描述 IOS获取系统相册图片名称在非ARC模式下报错 dispatch_async(dispatch_get_main_queue(), ^{ ALAssetsLibraryAssetForURLResultBlock resultblock = ^(ALAsset *myasset){ ALAssetRepresentation *representation = [myasset defaultRepresentation]; NSString *fileName = [represen

Python获取网页上图片下载地址的方法_python

本文实例讲述了Python获取网页上图片下载地址的方法.分享给大家供大家参考.具体如下: 这里获取网页上图片的下载地址是正在写的数据采集中的一段,代码如下: 复制代码 代码如下: #!/user/bin/python3 import urllib2 from HTMLParser import HTMLParser class MyHtmlParser(HTMLParser):     links = []     def handle_starttag(self, tag, attrs):  

数据库-android 从SQLLite中获取到的图片路径,用Bitmap 加载不出来

问题描述 android 从SQLLite中获取到的图片路径,用Bitmap 加载不出来 android 从SQLLite中获取到的图片路径,用Bitmap 加载不出来,但是从本地文件中获取到的路径可以正常加载显示 下面是这两种方式的主要代码 //从数据库获取路径并加载 for (DiagHistory diagHistory : diagLists) { String path = diagHistory.getHistoryPic(); Bitmap bitmap =BitmapFactor