上一页 1 ··· 21 22 23 24 25 26 27 28 29 ··· 61 下一页
  2011年9月29日
摘要: JPEG(Joint Photographic Experts Group)是联合图像专家小组的英文缩写。它由国际电话与电报咨询委员会CCITT(The International Telegraph and Telephone Consultative Committee)与国际标准化组织ISO于1986年联合成立的一个小组,负责制定静态数字图像的编码标准。小组一直致力于标准化工作,开发研制出连续色调、多级灰度、静止图像的数字图像压缩编码方法,即JPEG算法。JPEG算法被确定为国际通用标准,其适用范围广泛,除用于静态图像编码外,还推广到电视图像序列的帧内图像压缩。而用JPEG算法压缩出来的 阅读全文
posted @ 2011-09-29 17:31 carekee 阅读(1466) 评论(0) 推荐(0)
摘要: CString->std::string 例子:CString strMfc=“test“;std::string strStl;strStl=strMfc.GetBuffer(0);unicode情形下: CStringW strw =_T("test"); CStringA stra(strw.GetBuffer(0)); strw.ReleaseBuffer(); std::string imgpath=stra.GetBuffer(0); stra.ReleaseBuffer();std::string->CString 例子:CString strMf 阅读全文
posted @ 2011-09-29 17:28 carekee 阅读(11159) 评论(0) 推荐(0)
摘要: VC屏幕截图代码2008年05月20日 14:09HBITMAP CLinkDlg::CopyScreenToBitmap(LPRECT lpRect) { HDC hScrDC, hMemDC; HBITMAP hOldBitmap;int nX, nY, nX2, nY2; int nWidth, nHeight; int xScrn, yScrn; if (IsRectEmpty(lpRect)) return NULL; hScrDC = CreateDC(_T("DISPLAY"), NULL, NULL, NULL); hMemDC = CreateCompat 阅读全文
posted @ 2011-09-29 17:27 carekee 阅读(813) 评论(0) 推荐(0)
摘要: 如何理解LPCTSTR类型? L表示long指针 这是为了兼容Windows 3.1等16位操作系统遗留下来的,在win32中以及其他的32为操作系统中, long指针和near指针及far修饰符都是为了兼容的作用。没有实际意义。P表示这是一个指针C表示是一个常量T表示在Win32环境中, 有一个_T宏这个宏用来表示你的字符是否使用UNICODE, 如果你的程序定义了UNICODE或者其他相关的宏,那么这个字符或者字符串将被作为UNICODE字符串,否则就是标准的ANSI字符串。STR表示这个变量是一个字符串所以LPCTSTR就表示一个指向常固定地址的可以根据一些宏定义改变语义的字符串。同样, 阅读全文
posted @ 2011-09-29 17:26 carekee 阅读(2072) 评论(0) 推荐(0)
摘要: int Cjpeg2View:: SaveBitmapToFile(CBitmap *bitmap,LPSTR lpFileName) //hBitmap 为刚才的屏幕位图句柄 lpFileName 为位图文件名 { HBITMAP hBitmap; HDC hDC; //设备描述表 int iBits; //当前显示分辨率下每个像素所占字节数 WORD wBitCount; //位图中每个像素所占字节数 DWORD dwPaletteSize=0, dwBmBitsSize, dwDIBSize, dwWritten; //定义调色板大小, 位图中像素字节大小 ,位图文件大小 , 写入文件字 阅读全文
posted @ 2011-09-29 17:25 carekee 阅读(719) 评论(0) 推荐(0)
  2011年9月27日
摘要: 前两天有个朋友让我帮他编一个图象处理方面的程序,需要支持目前常见的图像格式.这可把我难住了.一直以来都只会用Visual C++的CBitmap类加载各种位图资源,然后处理.Visual C++的CBitmap类的功能是比较弱的,它只能显示出在资源中的图标、位图、光标以及图元文件的内容,而不像VB中的Image控件可以显示出绝大多数的外部图像文件(BMP、GIF、JPEG等)。如果想要在对话框或其他窗口中显示外部图像文件则只能借助于第三方提供的控件或代码,未免过于繁琐. 这阵子在学C#,装了visual studio2003.索性在网上找了一下,竟然发现.net引入了一个功能非常强大的新类 . 阅读全文
posted @ 2011-09-27 10:53 carekee 阅读(894) 评论(0) 推荐(0)
摘要: ATL::CImage 的透明通道的处理与格式转换1、透明通道的处理:在 CImage 的处理中,(其实就是 Windows 中的位图处理)一切的绘图函数都不修改透明通道的值,即使你进行 TransparentBlt 调用(关于该函数很有意思,在不包含透明通道的位图处理中,进行透明色的过滤处理,否则直接复制透明通道到目标DC),或者你使用 AlpahBlend ,更是直接对 RGB 三原色进行混合运算,而不会对透明通道进行任何的处理,换句话说,在32位的 RGBA 格式位图中,所有的 GDI 函数都是将位图当做 RGBX 格式进行处理的;因此创建一个包含透明通道的32位位图,进行绘图,然后保存 阅读全文
posted @ 2011-09-27 10:52 carekee 阅读(1020) 评论(0) 推荐(0)
摘要: VC6如何使用VS2005中的CImage类功能 由于VC6启动速度快,产生的执行代码小,还有可爱的类向导,所以许多C++程序员还工作在VC6环境中。 但是我们想在VC6中用VS2005中的新功能怎么办呢?例如CImage类(有很强的图像处理功能).当然我们无法直接使用CImage了,经过我的思考和实践,以下方法是可行的: 用VS2005生成一个CImage2005动态库,然后用VC6调用就可以了。DLL主要代码如下://Image2005.h#pragma onceclass AFX_EXT_CLASS CImage2005//导出整个类{private:void *m_pImage... 阅读全文
posted @ 2011-09-27 10:51 carekee 阅读(1358) 评论(0) 推荐(0)
  2011年9月20日
摘要: BOOL CTESTPICVIEWDlg::SaveBmp(HBITMAP hBitmap, CString FileName) //FileName包括路径和文件的全名//hBitmap=(HBITMAP )bm.GetSafeHandle(); CBitmap bm;{ //设备描述表 HDC hDC; //当前分辨率下每象素所占字节数 int iBits; //位图中每象素所占字节数 WORD wBitCount; //定义调色板大小, 位图中像素字节大小 ,位图文件大小 , 写入文件字节数 DWORD dwPaletteSize=0, dwBmBitsSize=0, dwDIBSize 阅读全文
posted @ 2011-09-20 16:58 carekee 阅读(1734) 评论(0) 推荐(0)
  2011年9月19日
摘要: 我们知道,在以往的图像处理中,常常要根据不同图像文件的格式及其数据存储结构在不同格式中进行转换。某个图像文件的显示也是依靠对文件数据结构的剖析,然后读取相关图像数据而实现的。现在,GDI+提供了Image和Bitmap类使我们能轻松容易地处理图像。概述 GDI+支持大多数流行的图像文件格式,如BMP、GIF、JPEG、TIFF和PNG等。下面先来介绍这些图像文件,然后再说明Image和Bitmap类支持的特性。 1.图像文件格式简介 图像文件是描绘一幅图像的计算机磁盘文件,其文件格式不下数十种。这里仅介绍BMP、GIF、JPEG、TIFF和PNG等图像文件格式。 BMP文件格式 B... 阅读全文
posted @ 2011-09-19 10:36 carekee 阅读(515) 评论(0) 推荐(1)
  2011年9月16日
摘要: 在开发界面及棋牌游戏过程中,需要很多镂空的图片,而且图片形式一般比较固定.所以封装了几种常见的镂空方法.1. 用于没有掩码图,只有指定透明色,不进行伸缩voidDrawTransBitmap(HDChdcDest, //目标DC intnXOriginDest,//目标X偏移intnYOriginDest,//目标Y偏移 intnWidthDest, //目标宽度 intnHeightDest,//目标高度HDChdcSrc, //源DC intnXOriginSrc,//源X起点intnYOriginSrc, //源Y起点COLORREF crTransparent//透明色,COLORRE 阅读全文
posted @ 2011-09-16 17:23 carekee 阅读(1238) 评论(1) 推荐(1)
摘要: 一、CDC到Graphics只要这样:Graphics g(pDC->GetSafeHdc());//只要能构造CDC句柄的MFC对象都可以 //CClientDC、CPaintDC,也都可以二、CBitmap到Graphics需要创建一个内存位图设备:CDC MemDC;CBitmap MemBitmap;MemDC.CreateCompatibleDC(pDC);MemBitmap.CreateCompatibleBitmap(pDC,size.cx, size.cy);CBitmap *pOldBit=MemDC.SelectObject(MemBitmap);Graphics g 阅读全文
posted @ 2011-09-16 09:51 carekee 阅读(1060) 评论(0) 推荐(0)
摘要: 最近在做使用GDI+绘制K线界面发现传统的GDI+绘制方式效率比较低,根本无法满足K线界面及时刷新的速度要求。所以做了个GDI+绘制图形界面的试验,改试验主要在一个600×600的区域内每隔10MS绘制60×60个点,每隔10MS改变其颜色,并记录每次绘制的帧数作为比较GDI+绘图性能的依据(这个界面是摘自网上)在这里定义个一个timer控件,刷新时间设为10ms,tick事件里写入一下代码DateTime t = DateTime.Now; ClientDC = this.CreateGraphics(); if (flag) { brus... 阅读全文
posted @ 2011-09-16 09:48 carekee 阅读(11606) 评论(2) 推荐(1)
  2011年9月15日
摘要: /// <summary>/// 将IplImage指针转换成位图对象;/// 对于不支持的像素格式,可以先使用cvCvtColor函数转换成支持的图像指针/// </summary>/// <param name="ptr">IplImage指针</param>/// <returns>返回位图对象</returns>public static Bitmap IplImagePointerToBitmap(IntPtr ptr){ MIplImage mi = IplImagePointerToMIp 阅读全文
posted @ 2011-09-15 17:42 carekee 阅读(1863) 评论(0) 推荐(0)
摘要: Gdiplus::Bitmap转 IplImage//pIplImage需要外部释放 MosesyuanvoidCGeneral::BitmapToIplImage(Bitmap*pBitmap,IplImage*&pIplImg){if(!pBitmap){return;}if(pIplImg){cvReleaseImage(&pIplImg);pIplImg=NULL;}BitmapDatabmpData;Rectrect(0,0,pBitmap->GetWidth(),pBitmap->GetHeight());pBitmap->LockBits(&am 阅读全文
posted @ 2011-09-15 17:40 carekee 阅读(1749) 评论(0) 推荐(0)
  2011年9月13日
摘要: 一。CxImage类库简介这只是翻译了CxImage开源项目主页上的部分简介及简单使用。CxImage类库是一个优秀的图像操作类库。它可以快捷地存取、显示、转换各种图像。有的读者可能说,有那么多优秀的图形库,如OpenIL,FreeImage,PaintLib等等,它们可谓是功能强大,齐全,没必要用其它的类库。但我要说,这些类库基本上没有免费的,使用这些类库,你要被这样那样的许可协议所束缚。在这点上,CxImage类库是完全免费的。另外,在使用上述类库时,你会遇到重重麻烦。因为它们大部分是平台无关的,且用C语言写成,有的还夹杂着基本的C++ wrapper和成堆德编译选项的声明需要你去处理。而 阅读全文
posted @ 2011-09-13 14:22 carekee 阅读(989) 评论(0) 推荐(0)
摘要: Cximag是一个库 能够处理大多数格式的图像的打开, 变形,等功能, 很强大, 而且还是开源的. 不过作者好像在2004年就停止了更新,可能是因为大部分的功能都已经实现了.我用的vs 2005 与vc有不小的区别. 因此 设置和作者的介绍有点不同, 我是笨鸟, 把所有的.h和.cpp 文件都拷贝到工程的一个文件下. 然后在2005中设置lib 的路径.这样就不需要 设置#pragma comment(lib,"cximage.lib")#pragma comment(lib,"Jpeg.lib")#pragma comment(lib,"pn 阅读全文
posted @ 2011-09-13 14:20 carekee 阅读(1503) 评论(1) 推荐(0)
摘要: 如何解码内存中的图像 CxImage image((BYTE*)buffer,size,image_type);或者CxMemFile memfile((BYTE*)buffer,size);CxImage image(&memfile,image_type);或者CxMemFile memfile((BYTE*)buffer,size);CxImage* image = new CxImage();image->Decode(&memfile,type); 如何对内存中的图像编码long size=0;BYTE* buffer=0;image.Encode(buffer 阅读全文
posted @ 2011-09-13 14:18 carekee 阅读(623) 评论(0) 推荐(0)
摘要: CxImage类成员和操作 CxImage使用Doxygen 产生文档,但是由于一些历史的原因,很多不太通用的功能还没有文档。类成员的参考资料,发布历史以及许可信息都可以在这里(here )找到。 支持的格式和选项 整个CxImage库非常大,在主要的头文件ximcfg.h中,你可以找到很多编译选项开关,用于启用或者禁用某些特定的图像格式或者功能。每个JPG, PNG和 TIFF库将使得应用程序增加大约100KB的大小,同时,CxImage将使得应用程序增加大约50KB的大小。所以,为了减小你的应用程序的体积,你应该支持和链接你的应用程序确实需要的格式。格式定义#define需要的库尺寸 [. 阅读全文
posted @ 2011-09-13 14:17 carekee 阅读(912) 评论(0) 推荐(0)
摘要: 首先,我们需要声明这个函数: bool Jitter(long radius=2) 在ximage.h头文件的CXIMAGE_SUPPORT_DSP部分,你可以在public区域的任何部分声明这个函数。 现在,我们开始定义这个函数:bool CxImage::Jitter(long radius){// 检查图像是否合法,这应当是这个函数的第一行if (!pDib) return false;// 局部变量long nx,ny;// 临时图像,用于存储算法的部分结果CxImage tmp(*this,pSelection!=0,true,true);// 限制函数仅仅作用在选区(通过Selec 阅读全文
posted @ 2011-09-13 14:17 carekee 阅读(544) 评论(0) 推荐(0)
上一页 1 ··· 21 22 23 24 25 26 27 28 29 ··· 61 下一页