图片显示 类
来源:互联网 发布:php 大端小端 转换 编辑:程序博客网 时间:2024/06/11 22:48
利用直方图的对话框资源IDD_HISTOGRAM,关联类文件:enum{ IDD = IDD_HISTOGRAM };
更改 开始的宏定义名称
调用:
BmpDlg *bmpdlg = new BmpDlg();bmpdlg->Init(gray,myBmp.GetBmpWidth(),myBmp.GetHeight());bmpdlg->Create(IDD_HISTOGRAM,this);bmpdlg->SetWindowText(myBmp.GetBmpName());bmpdlg->ShowWindow(SW_SHOW);
或者:
BmpDlg *bmpdlg = new BmpDlg();bmpdlg->Init(NULL,myBmp.GetBmpWidth(),myBmp.GetHeight()); bmpdlg->Create(IDD_HISTOGRAM,this); bmpdlg->SetWindowText(myBmp.GetBmpName()); myProcess.ShowArrayToDevice(&bmpdlg->dcMemory,0,0,gray,myBmp.GetBmpWidth(),myBmp.GetHeight()); bmpdlg->ShowWindow(SW_SHOW);
或者直接利用其他函数绘制彩色图像:
BmpDlg *bmpdlg = new BmpDlg(); bmpdlg->Init(NULL,myBmp.GetBmpWidth(),myBmp.GetHeight()); bmpdlg->Create(IDD_HISTOGRAM,this);bmpdlg->SetWindowText(myBmp.GetBmpName());myBmp.ShowBmpToDevice(&bmpdlg->dcMemory,0,0);//在双重缓冲中绘图 bmpdlg->ShowWindow(SW_SHOW);
完整代码
#pragma once// Histogram.h : header file//#include"resource.h"/////////////////////////////////////////////////////////////////////////////// Histogram dialogclassBmpDlg:publicCDialog{public: voidInit(unsignedchar* array,int width,int height); BmpDlg(CWnd* pParent = NULL); CDC dcMemory; unsignedchar*bmp; unsignedchar*huidubmp; int width; int height; enum{ IDD = IDD_HISTOGRAM }; protected: virtualvoidDoDataExchange(CDataExchange* pDX); protected: afx_msg void OnPaint(); virtual BOOL OnInitDialog(); DECLARE_MESSAGE_MAP() };CPP// Histogram.cpp : implementation file//#include"stdafx.h"#include"BmpDlg.h"#ifdef _DEBUG#definenew DEBUG_NEW#undef THIS_FILEstaticchar THIS_FILE[]= __FILE__;#endif/////////////////////////////////////////////////////////////////////////////// Histogram dialogBmpDlg::BmpDlg(CWnd* pParent /*=NULL*/):CDialog(BmpDlg::IDD, pParent){ bmp=NULL;}voidBmpDlg::DoDataExchange(CDataExchange* pDX){ CDialog::DoDataExchange(pDX);}BEGIN_MESSAGE_MAP(BmpDlg,CDialog)END_MESSAGE_MAP()/////////////////////////////////////////////////////////////////////////////// Histogram message handlersvoidBmpDlg::OnPaint(){ CPaintDC dc(this); dc.BitBlt(0,0,width,height,&dcMemory,0,0,SRCCOPY);}BOOL BmpDlg::OnInitDialog(){ CDialog::OnInitDialog(); CPaintDC dc(this);// device context for painting dcMemory.CreateCompatibleDC(&dc); CBitmap bitmap; bitmap.CreateCompatibleBitmap(&dc,width,height); dcMemory.SelectObject(&bitmap); if(bmp!=NULL) { for(int i=0;i<height;i++) for(int j=0;j<width;j++) { dcMemory.SetPixel(j,height-i,RGB(bmp[i*(width)+j],bmp[i*(width)+j],bmp[i*(width)+j])); } } CRect rect(0,0,width,height); this->MoveWindow(&rect,true); return TRUE}voidBmpDlg::Init(unsignedchar* array,int width,int height){ this->width=width; this->height = height; if(array!=NULL) { bmp =newunsignedchar[width*height]; memcpy(bmp,array,width*height*sizeof(unsignedchar)); }}
0 0
- QPixmap 类显示图片
- CImage类显示图片
- 图片显示 类
- 使用CImage类 显示图片
- 使用CImage类 显示图片
- 设置显示图片的类
- 图片显示
- 显示图片
- 图片显示
- 图片显示
- 图片显示
- 图片显示
- 显示图片
- 图片显示
- 显示图片
- 图片显示
- 图片显示
- 显示图片
- 软件生命周期
- DirectX9 IDirect3DDevice9::DrawIndexedPrimitive
- 新书上市《深入解析Android 5.0系统》
- HighChats 修改右下角版权标记
- 设计模式的六大原则
- 图片显示 类
- 架构师成长历程
- CUDA和OpenCL
- java.io包的FileFilter和FileNameFilter的区别
- android:windowSoftInputMode
- DirectX9 Begin/End Scene
- Android App 淘点点
- 转别人的rails总结
- JDK 1.5、1.6 & 中文版API,J2EE5API大全